You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas的read_csv函数在文件不存在时能否优雅执行?

如何让pandas的read_csv在文件不存在时返回None/空值而非抛出错误

针对你明确知道文件不存在、希望read_csv不抛出FileNotFoundError而是返回空值/None的需求,这里有两种实用方案:

方案1:封装异常处理的安全读取函数

把try-except逻辑封装成复用函数,既保持代码整洁,又能覆盖所有文件不存在的场景(包括检查文件后被删除的竞态情况):

import pandas as pd

def safe_read_csv(file_path, **kwargs):
    try:
        return pd.read_csv(file_path, **kwargs)
    except FileNotFoundError:
        return None  # 若需要空DataFrame,替换为 return pd.DataFrame()

调用时和原生read_csv完全一致,额外参数也能正常传递:

df = safe_read_csv("missing_file.csv", sep=";", header=0)

方案2:先检查文件存在性再读取

用现代的pathlib或传统的os.path先判断文件是否存在,再决定是否调用read_csv:

用pathlib(推荐)

from pathlib import Path
import pandas as pd

file_path = Path("missing_file.csv")
df = pd.read_csv(file_path) if file_path.is_file() else None

用os.path

import os
import pandas as pd

df = pd.read_csv("missing_file.csv") if os.path.isfile("missing_file.csv") else None

注意:这种方法存在竞态条件——如果检查文件存在后,到调用read_csv前文件被删除,仍会抛出错误。但如果是你明确知晓文件不存在的场景,这个问题可以忽略。

两种方案对比:方案1更可靠,能处理所有文件不存在的情况;方案2代码更简洁,适合确定文件状态不会变化的场景。

内容的提问来源于stack exchange,提问作者KansaiRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:35:18