我需要等到创建文件然后读取它。我有以下代码,但确定它不起作用:
import os.path
if os.path.isfile(file_path):
read file in
else:
wait
有什么想法吗?
答案 0 :(得分:60)
一个简单的实现可能是:
import os.path
import time
while not os.path.exists(file_path):
time.sleep(1)
if os.path.isfile(file_path):
# read file
else:
raise ValueError("%s isn't a file!" % file_path)
每次检查后等待一段时间,然后在路径存在时读取文件。如果永远不会创建文件,则可以使用KeyboardInterruption
异常停止脚本。您还应检查路径是否为文件,以避免一些不必要的异常。
答案 1 :(得分:3)
import os
import time
file_path="AIMP2.lnk"
if os.path.lexists(file_path):
time.sleep(1)
if os.path.isfile(file_path):
fob=open(file_path,'r');
read=fob.readlines();
for i in read:
print i
else:
print "Selected path is not file"
else:
print "File not Found "+file_path
答案 2 :(得分:3)
一旦下载文件或创建了file_path,以下脚本将立即中断,否则它将等待长达10秒钟的时间来下载文件或创建file_path,然后再中断。
import os
import time
time_to_wait = 10
time_counter = 0
while not os.path.exists(file_path):
time.sleep(1)
time_counter += 1
if time_counter > time_to_wait:break
print("done")
答案 3 :(得分:0)
此代码可以按文件大小检查下载。
import os, sys
import time
def getSize(filename):
if os.path.isfile(filename):
st = os.stat(filename)
return st.st_size
else:
return -1
def wait_download(file_path):
current_size = getSize(file_path)
print("File size")
while current_size !=getSize(file_path) or getSize(file_path)==0:
current_size =getSize(file_path)
print("current_size:"+str(current_size))
time.sleep(1)# wait download
print("Downloaded")