未从命令行python读取特殊字符'-'[重复]

2ul0zpep  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(138)

此问题在此处已有答案

Python argparse: Leading dash in argument(2个答案)
9小时前关门了。
我的python代码如下:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--cmd_list", nargs="+")
args = parser.parse_args()
cmd_list = args.cmd_list
print(cmd_list)

我知道如果我需要传递特殊字符作为命令行参数的一部分,我需要用 * 将它们括在“”或'* 中。
例如,下面的代码可以工作[将$作为参数传递]:

python3 myfile.py --cmd_list 'sh' '$L'

但是,在大括号中编码'-'没有帮助。
例如,如果我触发以下命令:

python3 myfile.py --cmd_list 'sh' '-L'

出现以下错误:

error: unrecognised arguments: -L

是否有方法将'-'合并为程序参数?

hgncfbus

hgncfbus1#

使用sys.argv访问参数而不处理它们,令file.py内容为

import sys
args = sys.argv[1:] # 1st element is file name
print(args)

然后

python3 file.py --cmd_list 'sh' '-L'

给出输出

['--cmd_list', 'sh', '-L']

相关问题