You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:57:57