当我在没有找到文件的情况下搜索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')