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

如何在Jupyter Notebook中传递文件路径命令行参数测试Python脚本

在Jupyter Notebook中为argparse脚本传递命令行参数的正确方法

先修正代码中的关键错误

你的代码存在两处致命问题,会直接导致运行失败:

  1. 误用os.chdir():os.chdir()是切换工作目录的函数,返回值为None,你将其赋值给Sp_Report和Report,后续的exists()检查会直接报错。应该直接使用argparse传入的Path对象:
    # 错误写法
    Sp_Report = os.chdir(args.SP_File)
    # 正确写法
    Sp_Report = args.SP_File
    
    同理,Report = args.File2,不要调用os.chdir()。
  2. 未定义变量:代码中slicer_column_values、left_merged、Match_Values、start_date、end_date这些变量没有定义,需要补充后才能正常执行导出Excel的逻辑。

两种在Jupyter Notebook中测试argparse脚本的方法

方法一:手动模拟命令行参数(推荐)

在Notebook中直接修改sys.argv来模拟命令行输入,无需导出脚本。将原来的args = parser.parse_args()替换为以下代码:

import sys
# 模拟命令行参数,格式:[脚本名, 参数1名, 参数1值, 参数2名, 参数2值, 位置参数值]
sys.argv = [
    'Tractive_missing.py',
    '--SP_File', '/实际路径/file1.csv',
    '--File2', '/实际路径/csv2.csv',
    '/实际路径/输出目录'
]
args = parser.parse_args()

然后直接运行整个代码单元格即可,这样就相当于在命令行执行了对应的参数传递。

方法二:导出为Py脚本后用%run运行

  1. 将你的代码保存为.py文件(比如Tractive_missing.py)
  2. 在Jupyter Notebook的单元格中使用%run魔法命令传递参数,注意参数名要和代码中一致,且必填的位置参数Missing_Campaign_File要放在最后:
%run Tractive_missing.py --SP_File '/实际路径/file1.csv' --File2 '/实际路径/csv2.csv' '/实际路径/输出目录'

你原来尝试的错误点

  1. 不能用python直接运行.ipynb文件,Python只能执行.py格式的脚本
  2. 参数名不匹配:代码中定义的是--File2,你尝试时用了--Report2
  3. 缺少必填的位置参数Missing_Campaign_File
  4. 代码中误用os.chdir()导致路径处理错误

内容的提问来源于stack exchange,提问作者Gagandeep

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:22:42