Python - 检查昨天是否存在文件

时间:2018-03-07 13:57:15

标签: python

我正在尝试编写一个Python脚本,用于检查前一天是否存在文件。在这个例子中,我试图建立文件" myFile_20180306"与C:\ myFolder \目录一起存在。

我遇到的问题是在for循环中打印" ERROR:myFile_20180306不存在!"在控制台中多次。

如果文件存在与否,如何重写此脚本以仅显示一次打印行?

#!/usr/bin/python
import os, sys
from datetime import date, timedelta

yesterday = date.today() - timedelta(1)
yesterdaysDate = yesterday.strftime('%Y%m%d')
yesterdaysFile_myFile = yesterday.strftime('myFile_%Y%m%d.csv')

for subdir, dirs, files in os.walk('C:\myFolder'):
    for file in files:
        if file == yesterdaysFile_myFile:
            print 'OKAY: ',yesterdaysFile_myFile,' is available.'   
        else:
            print 'ERROR: ',yesterdaysFile_myFile,' does not exist!'

1 个答案:

答案 0 :(得分:0)

基兰,

感谢您澄清您的问题。如评论中所述,您的循环问题是,对于目录中的EACH文件,您的代码将打印ok或错误消息,具体取决于哪个适用于该文件。据推测,这大多是错误。

考虑这种方法:

#!/usr/bin/python
import os, sys
from datetime import date, timedelta

yesterday = date.today() - timedelta(1)
yesterdaysDate = yesterday.strftime('%Y%m%d')
yesterdaysFile_myFile = yesterday.strftime('myFile_%Y%m%d.csv')

file_names = os.listdir('C:\myFolder')
if yesterdaysFile_myFile in file_names:
    print("OKAY: {0} is available".format(yesterdaysFile_myFile))
else:
    print('ERROR: {0} does not exist!".format(yesterdaysFile_myFile))

os.listdir()为您提供目录中所有文件/目录名称的列表。然后,您可以在不进行第二次循环的情况下检查所需元素是否在列表中 - 这对于流程更有效,而且总代码更少。

根据您的元素是否在列表中,您将显示正确的消息。

希望这有帮助

相关问题