我正在寻找一些代码来检查文件系统中的文件是否可用(未被其他进程使用)。我怎么能在Python中做到这一点?谢谢!
我将如何使用它:圆柱形检查文件是否可用以及何时可用(进程不再需要它)删除它。
答案 0 :(得分:2)
while True:
try:
os.remove(yourfilename) # try to remove it directly
except OSError as e:
if e.errno == errno.ENOENT: # file doesn't exist
break
time.sleep(5)
else:
break
答案 1 :(得分:0)
如果文件其他进程打开并删除它,则在所有进程关闭其句柄之前,它不会从文件系统中删除。
如果其他进程只需要其文件句柄/对象继续工作,您可以安全地删除该文件,当进程关闭其句柄时,它将被删除。如果您希望能够在文件上调用open()直到进程完成它,则两个进程都需要使用锁(请参阅fcntl.flock())。
答案 2 :(得分:0)
不确定您是否使用Linux。我认为你正在寻找的是在python中实现'fuser'之类的功能。
如果您使用的是Linux,则可以在'/ proc'文件系统下迭代进程ID,并检查这些进程引用的文件。 检查此脚本fuser.py。您可以使用相同的方法,并根据您的需要调整上面列出的代码。