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

如何在Python脚本中传递、提取并使用命令行传入的变量

解决方案

直接调用现有字典取值

你已经把所有解析后的命令行参数存储在args字典中,直接通过对应键名取值即可使用,拼接文件名的示例如下:

import re
import sys
import os # 推荐用os模块处理路径,自动适配系统路径分隔符

args = {}
args['pythonFile'] =  sys.argv[0]
for arg in sys.argv[1:]:
  variable = re.search('\-\-(.*)\=',arg)
  variable = variable.group(1)
  value = re.search('\=(.*)',arg)
  value = value.group(1)
  args[variable] = value

# 以下是变量调用代码
# 1. 从字典取出对应参数
var_name1 = args['var_name1']
ds_name2 = args['ds_name2']
path = args['path']
# 2. 拼接完整文件名
filename = os.path.join(path, ds_name2)
# 测试输出
print(f"拼接后的文件路径:{filename}")
print(f"传入的var_name1值:{var_name1}")

运行后输出的filename值为C:\state.sas7bdat,符合需求。

现有代码优化建议

  • 手动写正则解析参数容易出现边界异常,比如参数值包含等号的场景会匹配错误,更推荐使用Python标准库内置的argparse模块处理命令行参数,示例如下:
import argparse
import os

parser = argparse.ArgumentParser()
parser.add_argument("--var_name1", type=str, required=True)
parser.add_argument("--ds_name2", type=str, required=True)
parser.add_argument("--path", type=str, required=True)
args = parser.parse_args()

# 直接通过属性调用参数
filename = os.path.join(args.path, args.ds_name2)
print(filename)
print(args.var_name1)
  • 注意Windows命令行传路径时,如果路径以\结尾,会转义后续的引号导致参数解析异常,建议传路径时结尾不加\,或者写成双反斜杠C:\\,也可以直接用正斜杠C:/,Python可以正常识别Windows下的正斜杠路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:03