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

Python中如何在exec中存储值并沿用脚本传参旧方式

解决方法

你现有代码里的exec(open('script.py ', filename).read())存在错误:open()的第二个参数是文件打开模式(比如'r'),你把文件名传进去会导致参数错误,无法正常运行。下面给你两种可行的解决方式:

方式一:修改原脚本(推荐)

把script.py的核心逻辑封装成函数,同时保留命令行运行的能力,这样既可以沿用原来的script.py filename.xlsx方式启动,也能作为模块导入调用:

修改后的script.py代码:

import sys

def process_excel(filename):
    # 这里放置你原脚本中读取、处理Excel的所有逻辑
    print(f"正在处理文件:{filename}")

if __name__ == '__main__':
    # 处理命令行运行时的参数
    if len(sys.argv) != 2:
        print("使用方式:python script.py filename.xlsx")
        sys.exit(1)
    process_excel(sys.argv[1])

在你的调用脚本中,直接导入并调用函数即可:

filename = input("Input XLSX file: ")
import script
script.process_excel(filename)

方式二:不修改原脚本(临时方案)

如果不想改动原脚本,可以临时修改sys.argv来模拟命令行传参(原脚本大概率依赖sys.argv获取文件名):

import sys

filename = input("Input XLSX file: ")
# 保存原有命令行参数,避免影响其他逻辑
original_argv = sys.argv.copy()
# 模拟命令行传参格式
sys.argv = ['script.py', filename]
# 导入脚本,此时原脚本会读取sys.argv[1]作为文件名执行
import script
# 恢复原有命令行参数
sys.argv = original_argv

内容的提问来源于stack exchange,提问作者Jian Ruiz Mangampo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:30:51