gpt4 book ai didi

python - 找不到文件时如何继续循环

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:22 25 4
gpt4 key购买 nike

我正在尝试打印用户设置的日期范围内的文件列表。

这是我的示例文件:注意文件中没有“2015-01-01”

enter image description here

如果我输入从 2015-01-022015-01-05 的范围,它将打印文件列表。但是,如果我从 2015-01-01 输入到 2015-01-05 它将导致错误:

OSError: (2, 'No such file or directory', '\\2015-01-01')

是否可以使用 try-except-pass 或 continue 以便我的循环仍将继续并打印 2015-01-022015-01-05。并拒绝找不到文件。

这是我当前的代码:

FileNameList = []
date = start_date
while date <= end_date:
folder_name = date.strftime(DATE_FORMAT)
data_folder = path.join(pathDir, folder_name)
#print data_folder

for filefolder in os.listdir(data_folder):
filefolder = data_folder + "\\" + filefolder

FileNameList.append(filefolder)

date += delta_one_day

for filefolder in FileNameList:
for file in os.listdir(filefolder):
if ".txt" in file:
filename = filefolder + "\\" + file
print filename

最佳答案

您可以尝试/排除循环,但更好的解决方案可能是首先仅将现有目录附加到您的列表中:

# your code and while loop here

if os.path.isdir(data_folder):
for filefolder in os.listdir(data_folder):
filefolder = data_folder + "\\" + filefolder

if os.path.isdir(filefolder):
FileNameList.append(filefolder)

for 循环放在 try/except block 中可能会有点困惑,因为如果发生异常,您将无法从中断处继续循环。但如果你确实想坚持使用 EAFP strategy :

for filefolder in FileNameList:
try:
files = os.listdir(filefolder)
except OSError:
# You could log/print a warning here if you need.
continue
for file in files:
if ".txt" in file:
filename = filefolder + "\\" + file
print filename

关于python - 找不到文件时如何继续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com