Python读取指定前缀文件转Pandas DataFrame触发FileNotFoundError
问题原因
os.listdir()返回的是目标目录下的纯文件名,不是完整文件路径。当你执行pd.read_csv(fn)时,Python会在当前工作目录(而非你指定的Data\Input_Data目录)中查找这个文件,所以触发了FileNotFoundError。
修复方案
方案1:用os.path拼接完整路径
修改代码,把目录路径和文件名拼接成完整路径,同时注意路径转义问题:
import os import pandas as pd target_dir = r'Data\Input_Data' # 用原始字符串避免反斜杠转义 for fn in os.listdir(target_dir): if fn.startswith(var2): print('using file', fn) full_path = os.path.join(target_dir, fn) # 拼接完整文件路径 data4 = pd.read_csv(full_path) print(data4)
方案2:用pathlib(更简洁的现代写法)
pathlib是Python3.4+推荐的文件路径处理模块,代码更直观且跨平台:
from pathlib import Path import pandas as pd target_dir = Path('Data/Input_Data') # 用正斜杠分隔路径,无需转义 for file_path in target_dir.iterdir(): if file_path.name.startswith(var2): print('using file', file_path.name) data4 = pd.read_csv(file_path) # Path对象可直接传入pd.read_csv print(data4)
内容的提问来源于stack exchange,提问作者Kishu P
相关产品推荐
相关产品推荐

