Python生成路径后pd.read_excel触发FileNotFoundError问题求助
解决pd.read_excel()报FileNotFoundError的问题
问题说明
通过os.path.abspath(os.path.dirname(sys.argv[0]))获取脚本目录,再用os.path.join拼接Excel文件路径,生成路径为C:\\BaptismalSlideShow\\BaptismTiltesTooPictures.xlsx,但pd.read_excel()读取时提示文件找不到。手动将双反斜杠改为单反斜杠可在资源管理器打开文件,甚至手动写路径字符串也无法解决问题。
核心排查点
注意:Python打印的双反斜杠是字符串转义的显示形式,实际存储的是单反斜杠,这不是报错的根源,重点检查以下内容:
- 文件名拼写:代码中写的是
BaptismTiltesTooPictures.xlsx,确认实际文件名是否存在拼写错误(比如Tiltes是不是应该是Titles) - 文件实际位置:确保Excel文件确实在脚本所在的
C:\BaptismalSlideShow目录下,而非子目录或其他路径 - 隐藏扩展名干扰:Windows默认隐藏已知文件扩展名,可能实际文件名是
BaptismTiltesTooPictures.xlsx.xlsx,需开启“显示文件扩展名”查看 - 权限问题:运行脚本的用户是否拥有该文件的读取权限
- 工作目录验证:添加
print(os.getcwd())确认当前工作目录,排除其他路径干扰
解决方案示例
在代码中加入文件存在性检查,同时修正可能的拼写错误:
from pptx import Presentation import datetime import pandas as pd import os import sys from collections import Counter from pptx.util import Inches, Pt from pptx.enum.shapes import MSO_SHAPE from PIL import Image from pptx.dml.color import RGBColor import numpy as np scriptdir = os.path.abspath(os.path.dirname(sys.argv[0])) # 打印关键路径信息,辅助排查 print("当前工作目录:", os.getcwd()) print("脚本所在目录:", scriptdir) now = datetime.datetime.now() TEST_FILE_PATH = os.path.join(scriptdir, "master.pptx") # 修正文件名拼写(假设实际是Titles而非Tiltes) BAP_DATA_PATH = os.path.join(scriptdir, "BaptismTitlesTooPictures.xlsx") test_save = os.path.join(scriptdir, "Generated Baptismal Slide Show (Generated {}).pptx".format(now.strftime("%b %d, %Y at %I %M %S"))) WHEAT = os.path.join(scriptdir, "Wheat.jpg") print("Excel文件路径:", BAP_DATA_PATH) # 先检查文件是否存在 if os.path.exists(BAP_DATA_PATH): print("文件存在,开始读取") bap_pic_df = pd.read_excel(io=BAP_DATA_PATH) else: print("文件不存在,请检查路径和文件名是否正确")
内容的提问来源于stack exchange,提问作者OldHashbrowns1
相关产品推荐
相关产品推荐

