我目前在目录'DIR'中的文件中输出外部程序。现在,如果我想从python中看到文件是否完全创建,我该如何检查并完成执行程序。
我的研究表明可以通过
完成os.path.isfile(FILE_NAME)
但我如何继续检查,以某种方式不会弄乱其他程序。这是我有所了解的事情?请告诉我这是如何实现的?还是我的模板足够好?
counter = 0;
While os.path.isfile(FILE_NAME) == False:
Time.Sleep(3)
counter += 1
if counter < 5:
# I guess we are good at this point ?
感谢您的时间和考虑。
答案 0 :(得分:5)
这种方法显然只能在Windows上运行(参见下面的评论),并且依赖于外部程序在创建文件期间仅打开和关闭文件的事实。
import time
filename = 'my_file.txt'
while True:
try:
with open(filename, 'rb') as _:
break
except IOError:
time.sleep(3)
如果要设置访问次数的最大限制,可以执行以下操作:
import time
filename = 'my_file.txt'
max_i = 10
for i in xrange(max_i):
try:
with open(filename, 'rb') as _:
break
except IOError:
time.sleep(3)
else:
raise IOError('Could not access {} after {} attempts'.format(filename, str(max_i)))