VSCode中pd.read_excel在ipynb可用但py文件报错的原因咨询
问题原因及解决办法
核心原因就是运行代码时的工作目录不一样:
- Jupyter Notebook启动时,默认把你打开notebook的文件夹设为工作目录,刚好就是.ipynb和Excel文件所在的目录,所以直接写文件名能找到文件。
- 运行.py脚本时,工作目录是你打开终端/命令行时所在的目录,不是.py文件本身的目录。比如你在电脑桌面打开命令行,然后输入
python 文档/我的脚本.py,此时工作目录是桌面,脚本里找Physical properties.xlsx就会去桌面找,自然找不到同目录的文件。
验证方法
在.ipynb和.py文件里都加上这两行代码,运行后对比输出的路径,就能直观看到差异:
import os print(os.getcwd())
除了绝对路径的解决办法
- 先切目录再运行脚本:打开终端后,先用
cd命令切换到.py文件所在的文件夹,再运行python 脚本文件名.py。 - 脚本内动态获取路径:在代码里自动获取脚本所在目录,再拼接Excel路径,这样不管在哪运行都能找到文件:
import os import pandas as pd # 获取当前脚本的绝对目录 script_folder = os.path.dirname(os.path.abspath(__file__)) # 拼接Excel文件的完整路径 excel_file = os.path.join(script_folder, 'Physical properties.xlsx') data = pd.read_excel(excel_file, index_col=1, header=3)
内容的提问来源于stack exchange,提问作者Hexadox
相关产品推荐
相关产品推荐

