如何解决Pandas报FileNotFoundError: [Errno 2]找不到文件错误?
错误根因
glob.glob1() 返回的结果是匹配筛选规则的纯文件名集合,不包含文件所属的目录前缀。你直接将纯文件名传入pd.read_csv()时,解释器会默认从当前脚本的运行工作目录检索目标文件,并不会主动到你定义的output_path目录下查找,因此触发FileNotFoundError。
修复方案
读取文件前将目录路径和文件名拼接为完整绝对路径即可,优先使用os.path.join()做路径拼接,可自动适配Windows/macOS/Linux不同系统的路径分隔符规则,避免手动写分隔符出现转义、格式错误。
修正后可运行代码:
import pandas as pd import glob import os output_path = r'C:\Users\windows\Documents\test' txt_files = glob.glob1(output_path, 'Region_*.txt') for txt_file in txt_files: # 拼接得到文件完整绝对路径 file_full_path = os.path.join(output_path, txt_file) print(file_full_path) df = pd.read_csv(file_full_path, sep='\t') print(df)
注:不推荐使用
os.chdir(output_path)切换全局工作目录的方式修复该问题,随意变更工作目录容易引发后续其他文件读写操作的路径匹配错误。
内容的提问来源于stack exchange,提问作者anonymus
相关产品推荐
相关产品推荐

