检查文件在Python中是否可用(未被其他进程使用)
我想找一些代码来检查文件系统中的一个文件是否可用(也就是说,看看这个文件是否被其他程序占用)。我该怎么用Python来实现呢?谢谢!
我打算这样使用:循环检查文件是否可用,当它可用时(其他程序不再需要它),就把它删除。
3 个回答
0
如果其他程序正在打开某个文件,而你把这个文件删除了,它在文件系统中是不会立刻消失的,直到所有打开这个文件的程序都关闭它。
如果其他程序只是需要这个文件的句柄(可以理解为一个指向文件的指针)来继续工作,你可以安全地删除这个文件,它会在那个程序关闭句柄时被真正删除。如果你想在那个程序使用文件的过程中还能继续打开这个文件,那么两个程序都需要使用锁(可以参考fcntl.flock())。
0
不确定你是不是在用Linux系统。我觉得你想要的是在Python中实现类似'fuser'的功能。
如果你在用Linux,你可以通过'/proc'文件系统查看进程ID,然后检查这些进程正在使用的文件。你可以看看这个脚本 fuser.py。你可以用同样的方法,根据你的需要调整上面提到的代码。
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
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。