pandas read_csv在找不到文件的情况下能正常完成吗



当我在没有找到文件的情况下搜索Panda的read_csv函数时,我发现很多问题在问"如果我的文件存在,为什么找不到它">

我的问题不同。我知道这个文件不存在。因此,当我调用read_csv时,我会得到一个FileNotFoundError。

我知道除了捕捉错误之外,我可以尝试,但有没有一种优雅的方式来指示函数我不想要错误,例如返回一个空值或不返回?

read_csv的工作是读取文件,而不是检查文件是否存在。您可以使用pathlib的Path来完成此操作。您可以将Path对象传递给read_csv,而不是字符串,这意味着您可以执行以下操作:

from pathlib import Path
import pandas as pd
file=Path("path/to/file.csv")
if file.exists():
df=pd.read_csv(file)
...

如果路径不存在,你必须决定该怎么办。最简单的选择就是不进行处理。

如果调用代码希望返回一个空的Dataframe具有特定的列,那么返回它是不够的。您必须创建一个包含这些列但不包含行的数据帧。

if file.exists():
df=pd.read_csv(file)
...
return df
else:
column_names = ["ColA", "ColB", "ColC"]
return pd.DataFrame(column_names)

您可以捕获错误,使用pandas.DataFrame构造函数返回空数据帧。

try:
df = pd.read_csv('a_non_exsiting_file.csv')
except FileNotFoundError:
df = pd.DataFrame()

#输出:

print(df)
Empty DataFrame
Columns: []
Index: []

"异常处理当发生错误或我们称之为异常时,Python通常会停止并生成错误消息。

这些异常可以使用try语句来处理:;

在我看来,既然你不想停止你的功能,唯一的方法就是使用try-except。

在你的情况下,这将是这样的:

def function ()
try:
df = pd.read_csv('csv name')
except:
print("An exception occurred")
else: 
df = pd.read_csv('csv name')

最新更新