Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 文件不存在时无法绕过错误_Python_Pandas - Fatal编程技术网

Python 文件不存在时无法绕过错误

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

我正在尝试使用pandas读取每个测试文件夹中的Data.csv文件。 有多个名为Test Test1、Test2、Test3等的文件夹。这些测试文件夹有一个名为ArchivedFiles.zip的存档zip文件,其中包含Data.csv。 但是,如果其中一个测试文件夹没有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','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')