python 防止重复进程
求教大神,防止重复打开同一个程序比如如下的代码,打包成exe文件
for i in range(100):
print(i)
怎么可以做到打开一个程序了,再打开会自动退出,而不会重复执行。
我知道最简单的是每次打开创建一个标志文件,每次退出就删除,然后判断标志文件在就不运行,标志文件在就能运行
但是这样也不行,因为意外退出,比如电脑关机了,这个文件不会被删除,那么下次就会判定为标志文件存在,就不能运行。
因为自己基础不扎实,虽然网上看了很多,还是不确定,哪位大神能否帮忙写一个最简单的程序,需要有的功能就是任何情况下,打开一次就不会重复打开第二次。演示这个功能的代码。
万分感谢 import os.path
if not os.path.isfile('a.a'):
f = open('a.a', 'w')
else:
exit()
for i in range(100):
print(i) 本帖最后由 1q23w31 于 2020-7-28 22:04 编辑
import socket
import sys
import time
try:
s = socket.socket()
host = socket.gethostname()
s.bind((host,8888))
for i in range(50):
print(i)
time.sleep(5)
except:
print('shili')
sys.exit()
可以改为监听端口,来实现单一运行,
就算意外关机,端口也会被释放,不会影响下一次使用 zltzlt 发表于 2020-7-28 21:32
这个不行啊,因为这个文件第一次出现了以后,以后就再也打不开程序了。
即使退出前加删除文件的代码也不行,因为可能出现意外关闭的状况,还是不会删除掉程序 1q23w31 发表于 2020-7-28 22:02
可以改为监听端口,来实现单一运行,
就算意外关机,端口也会被释放,不会影响下一次使用
亲测可用,非常感谢! huashengzi 发表于 2020-7-28 22:11
这个不行啊,因为这个文件第一次出现了以后,以后就再也打不开程序了。
即使退出前加删除文件的代码也不 ...
打不开程序是因为程序一执行完就退出了,在代码末尾加上一句 input() 就可以了 追问,这个端口号有哪些?可以随便写么?比如绑定7654?
怎么确认不会和其他程序使用一样的端口号,比如另外一个别的程序也绑定了此端口,会发生什么? zltzlt 发表于 2020-7-28 21:32
追问,这个端口号有哪些?可以随便写么?比如绑定7654?
怎么确认不会和其他程序使用一样的端口号,比如另外一个别的程序也绑定了此端口,会发生什么? 1q23w31 发表于 2020-7-28 22:02
可以改为监听端口,来实现单一运行,
就算意外关机,端口也会被释放,不会影响下一次使用
追问,这个端口号有哪些?可以随便写么?比如绑定7654?
怎么确认不会和其他程序使用一样的端口号,比如另外一个别的程序也绑定了此端口,会发生什么? huashengzi 发表于 2020-7-29 07:55
追问,这个端口号有哪些?可以随便写么?比如绑定7654?
怎么确认不会和其他程序使用一样的端口号,比 ...
看着用就行,冲突的话,程序无法运行,这么多端口,冲突几率很小
页:
[1]