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

Python-检查昨天的文件是否存在,python,Python,我正在尝试编写一个Python脚本,检查是否存在前一天的文件。在本例中,我试图确定文件myFile_20180306是否与C:\myFolder\目录一起存在 我遇到的问题是,在for循环中,它打印错误:myFile_20180306不存在!在控制台中多次 如果文件存在或不存在,如何重新编写此脚本以仅显示一次打印行 #!/usr/bin/python import os, sys from datetime import date, timedelta yesterday = date.tod

我正在尝试编写一个Python脚本,检查是否存在前一天的文件。在本例中,我试图确定文件myFile_20180306是否与C:\myFolder\目录一起存在

我遇到的问题是,在for循环中,它打印错误: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!'
基兰

谢谢你澄清你的问题。如注释中所述,循环的问题是,对于目录中的每个文件,代码将根据适用于该文件的文件打印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为您提供一个目录中所有文件/目录名的列表。然后,您可以检查所需的元素是否在列表中,而无需执行第二个循环-这对于流程来说更有效,而且代码总量更少

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


希望这有帮助

你有问题吗?这里没有问题!顺便说一句,您的格式与示例文件名不匹配for和if语句有什么问题?抱歉!更新了问题:-对于每个单独的文件,您正在确定您的文件是否存在。因此,如果您当前正在查看的文件不是您搜索的文件,则通常会声明您的文件根本不存在。您的逻辑需要是在找到文件时声明找到的文件,并且只有在没有找到文件的情况下耗尽循环后,才声明该文件不存在。提示:found=False,…,if…:found=True。