我每天都有9个不同的文件运行一些pandas代码。目前,我有一个计划任务在某个时间运行代码,但有时我们的客户端没有按时将文件上传到SFTP,这意味着代码将失败。我想创建一个文件检查脚本。
答案 0 :(得分:3)
import os, time
filelist = ['file1','file2','file3']
while True:
list1 = []
for file in filelist:
list1.append(os.path.isfile(file))
if all(list1):
# All elements are True. Therefore all the files exist. Run %run commands
break
else:
# At least one element is False. Therefore not all the files exist. Run FTP commands again
time.sleep(600) # wait 10 minutes before checking again
all()检查列表中的所有元素是否为True
。如果至少有一个元素为False
,则返回False
。
答案 1 :(得分:2)
缩短法尔汉的答案。您可以使用列表理解,并且可以用来简化代码。
import os, time
while True:
filelist = ['file1', 'file2', 'file3']
if all([os.path.isfile(f) for f in filelist]):
break
else:
time.sleep(600)
答案 2 :(得分:0)
使用map
的另一种更简单的方法:
import os
file_names_list = ['file1', 'file2', 'file3']
if all(list(map(os.path.isfile,file_names_list))):
# do something
else:
# do something else!