为何os.listdir()能找到Excel文件但pd.read_excel()报错?
问题原因及解决办法
报错原因
os.listdir('excels/')返回的是目标文件夹内的纯文件名(比如RandomExcelData.xlsx),而pd.read_excel()默认会在当前脚本的工作目录下查找文件——你的脚本工作目录并非excels/,因此直接传入纯文件名时,Python无法定位到目标文件,触发FileNotFoundError。
而直接使用pd.read_excel('excels/RandomExcelData.xlsx')时,传入的是完整相对路径,Python能准确找到excels文件夹中的目标文件,所以可以正常执行。
修复方案
有两种常用的解决方式:
方式1:拼接完整文件路径
使用os.path.join()将文件夹路径与文件名拼接成完整路径,确保Python能准确定位文件:
import os import pandas as pd for filename in os.listdir('excels/'): print(filename) # 拼接完整路径 full_path = os.path.join('excels/', filename) df = pd.read_excel(full_path) df.head()
方式2:切换工作目录至excels/
先将脚本的工作目录切换到excels/,之后直接使用文件名即可读取文件:
import os import pandas as pd # 切换工作目录到excels文件夹 os.chdir('excels/') for filename in os.listdir(): print(filename) df = pd.read_excel(filename) df.head()
内容的提问来源于stack exchange,提问作者Nicathus
相关产品推荐
相关产品推荐

