如何解决文件不存在时无法绕过错误
我正在尝试使用熊猫读取每个Test文件夹中的“ Data.csv”文件。 有多个名为“ Test”的文件夹(Test1,Test2,Test3等)。这些测试文件夹具有Data.csv所在的名为“ ArchivedFiles.zip”的压缩zip文件。 但是,如果其中一个“测试”文件夹没有“ Data.csv”文件,则无法执行此代码。如果存档文件夹中没有Data.csv,我希望能够继续前进。我不确定自己在做什么错。
这是我要处理的方式:
for x in Test:
print(f"{x}:")
zf = zipfile.ZipFile(x + '/ArchivedFiles.zip')
try:
df = pd.read_csv(zf.open('Data.csv'))
df_filter= df[['Time','Name',"Type","Status","Counters"]]
testFilter = df_filter[(df_filter.Type == 'Test')]
if testFilter['Status'].str.contains('Fail').any():
finalTable= testFilter[(testFilter.Status == 'Fail')]
if finalTable.empty:
print("Table Empty")
else:
fullFinalTable= finalTable[['Time',"Counters"]]
finalTableFilter = fullFinalTable.to_string()
print(finalTableFilter)
else:
print("No Fails")
except OSError:
pass
这是我收到的错误消息
line 508,in <module>
df = pd.read_csv(zf.open('Data.csv'))
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\python36_64\lib\zipfile.py",line 1352,in open
zinfo = self.getinfo(name)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\python36_64\lib\zipfile.py",line 1281,in getinfo
'There is no item named %r in the archive' % name)
KeyError: "There is no item named 'Data.csv' in the archive"
解决方法
您收到KeyError,因此请注意:
except KeyError:
pass
最好是捕获所有错误:
except:
pass
此外,您还将获得布尔值:
import os.path
os.path.exists('data.csv')
,
您得到的是KeyError
而不是OSError
。使用-
except KeyError:
pass
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。