我编写了一个简单的python脚本来自动检测目录中添加的文件,然后我会对这个新添加的文件做些什么。我试图解决的一个问题是如何确定文件复制过程是否已完成。
1)如何检测目录中添加的文件 - 已解决
http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html
2)如何检测文件复制过程完成?
一种解决方案是按照以下帖子中的建议比较尺寸。但我尝试了这种方法,我发现它没有用。当文件仍在复制时(Win7弹出窗口仍然显示13分钟),该条代码表明文件副本已完成。
任何人都可以帮助检查它为什么不起作用?有没有更好的方法来检测文件复制过程完成?
Python - How to know if a file is completed when copying from an outside process
file_size = 0
while True:
file_info = os.stat(file_path)
if file_info.st_size == 0 or file_info.st_size > file_size:
file_size = file_info.st_size
sleep(1)
else:
break
我自己提出以下解决方案。 我没有检查文件大小,而是试图打开这个文件。如果看到IOError,请休眠2秒然后重试。
如果您有更好的解决方案,请告诉我。
result = None
while result is None:
try:
result = open(logPath)
except IOError:
time.sleep(2)
result.close()