移动ipynb文件后pd.read_excel无法读取Excel文件该如何解决?
路径报错原因
你当前使用的是相对路径读取文件,相对路径的定位基准是代码运行时的工作目录(即ipynb文件当前存放的文件夹):
- 移动文件前:ipynb存放在桌面,桌面下存在
Reporting/LS_Questions.xlsx路径,所以运行正常 - 移动文件后:ipynb存放在桌面的
Python子文件夹中,该文件夹下不存在Reporting子目录,所以触发文件不存在报错
修复方案
你可以根据自己的使用场景选择以下任意一种方案:
方案1:直接调整相对路径(最快捷)
当前你的目录层级如下:
桌面 ├─ Python(ipynb存放目录) └─ Reporting(Excel文件存放目录)
使用../代表向上跳转一级目录,将路径修改为上一级目录下的Reporting文件夹即可,修改后代码:
RawData=pd.read_excel("../Reporting/LS_Questions.xlsx",skiprows=2)
方案2:使用绝对路径(最稳定,文件位置不变时通用)
直接写死Excel文件的完整绝对路径,Windows系统格式示例如下,将你的系统用户名替换为实际的Windows用户名即可:
# 示例路径,替换为你自己的实际路径 RawData=pd.read_excel("C:/Users/你的系统用户名/Desktop/Reporting/LS_Questions.xlsx",skiprows=2)
该方案的优势是只要Excel文件位置不变,不管你把代码文件移动到本机哪个位置都可以正常运行。
方案3:动态拼接路径(兼容性最优,适合跨设备运行)
使用os模块动态获取当前代码文件的路径,自动拼接目标文件路径,不需要手动调整路径,只要Python和Reporting两个文件夹的相对层级不变,不管整体目录移动到哪都可以正常运行,代码示例:
import os import pandas as pd # 获取当前代码文件所在目录的绝对路径 current_dir = os.path.dirname(os.path.abspath("__file__")) # 拼接得到Excel文件的完整路径 excel_path = os.path.join(current_dir, "..", "Reporting", "LS_Questions.xlsx") RawData = pd.read_excel(excel_path, skiprows=2)
调试小技巧
如果不确定当前的工作目录基准,可以运行以下代码打印当前工作目录,对照输出路径即可验证你写的路径是否正确:
import os print(os.getcwd())
内容的提问来源于stack exchange,提问作者flying_pumpkin
相关产品推荐
相关产品推荐

