Jupyter Notebook可运行代码复制到Python文件后出现文件找不到错误
Jupyter Notebook可运行代码复制到Python文件后出现文件找不到错误
嗨,这个问题其实挺常见的,核心原因是Jupyter Notebook和Python脚本的工作目录不一致,我来给你拆解下原因和解决办法:
为什么会出现这个差异?
当你在Jupyter Notebook里运行代码时,Notebook的「工作目录」是你打开Notebook时所在的文件夹,所以用相对路径"Excel_file.xlsx"能直接找到同目录的文件。但直接运行.py脚本时,Python的工作目录是你启动脚本时所在的终端/命令行目录,不一定是脚本本身的文件夹,这就导致相对路径找不到文件了。
几个实用的解决办法
方法一:使用动态拼接的绝对路径(最推荐)
这种方法能让脚本自动适配所在的文件夹,不管你把脚本移到哪都能正常找到文件,代码示例:import os import pandas as pd # 获取当前脚本所在的文件夹路径 script_folder = os.path.dirname(os.path.abspath(__file__)) # 拼接Excel文件的完整路径(自动适配Windows/Mac的路径分隔符) excel_file_path = os.path.join(script_folder, "Excel_file.xlsx") dataframe = pd.read_excel(excel_file_path, sheet_name = "sheet_23")方法二:手动切换工作目录后运行脚本
打开终端或命令提示符,先切换到你的.py脚本和Excel文件所在的文件夹,再运行脚本:# Windows示例 cd D:\your-folder-path python your_script.py # Mac/Linux示例 cd /Users/your-name/your-folder-path python3 your_script.py这样脚本的工作目录就和Jupyter一致了,原有的相对路径代码就能正常运行。
方法三:直接写死绝对路径(不推荐,灵活性差)
直接把Excel文件的完整路径写在代码里,比如:excel_file_path = "D:\your-folder-path\Excel_file.xlsx" # Windows # 或者 excel_file_path = "/Users/your-name/your-folder-path/Excel_file.xlsx" # Mac/Linux但这种方法的问题是,一旦你移动文件或者换电脑,代码就会失效,所以只适合临时测试用。
额外检查点
别忘了确认这几点,避免踩小坑:
- Excel文件确实和
.py脚本在同一个文件夹里 - 文件名完全一致(注意大小写!Mac/Linux系统区分文件名大小写,比如
Excel_file.xlsx和excel_file.xlsx是两个不同的文件) - 系统没有隐藏文件后缀名,导致实际文件名是
Excel_file.xlsx.xlsx这种情况(可以在文件夹设置里开启显示后缀名检查)
备注:内容来源于stack exchange,提问作者Random Person
相关产品推荐
相关产品推荐

