Python 文件不存在时无法绕过错误
我正在尝试使用pandas读取每个测试文件夹中的Data.csv文件。 有多个名为Test Test1、Test2、Test3等的文件夹。这些测试文件夹有一个名为ArchivedFiles.zip的存档zip文件,其中包含Data.csv。 但是,如果其中一个测试文件夹没有Data.csv文件,则我无法使此代码正常工作。如果存档文件夹中没有Data.csv,我希望能够继续。我不确定我做错了什么 下面是我如何处理它的:Python 文件不存在时无法绕过错误,python,pandas,Python,Pandas,我正在尝试使用pandas读取每个测试文件夹中的Data.csv文件。 有多个名为Test Test1、Test2、Test3等的文件夹。这些测试文件夹有一个名为ArchivedFiles.zip的存档zip文件,其中包含Data.csv。 但是,如果其中一个测试文件夹没有Data.csv文件,则我无法使此代码正常工作。如果存档文件夹中没有Data.csv,我希望能够继续。我不确定我做错了什么 下面是我如何处理它的: for x in Test: print(f"{x}:&qu
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','Name', "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"
您得到的是一个keyrerror而不是OSError。使用-
您得到的是一个keyrerror而不是OSError。使用-
您正在获取KeyError,因此请捕获:
except KeyError:
pass
最好的方法是捕获所有错误:
except:
pass
此外,您将通过以下方式获得布尔值:
import os.path
os.path.exists('data.csv')
您正在获取KeyError,因此请捕获:
except KeyError:
pass
最好的方法是捕获所有错误:
except:
pass
此外,您将通过以下方式获得布尔值:
import os.path
os.path.exists('data.csv')