【问题标题】:Special character '-' not read from command line python [duplicate]特殊字符\'-\'不是从命令行python读取的[重复]
【发布时间】:2022-12-09 22:52:53
【问题描述】:

我的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

有没有办法将“-”合并为程序参数?

【问题讨论】:

标签: python python-3.x special-characters command-line-arguments argparse


【解决方案1】:

使用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']

【讨论】:

  • 是的,这有效但没有使用参数分析也请客--cmd_list理想情况下,它需要作为论证本身成为论证的关键。
猜你喜欢
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2015-01-28
相关资源
最近更新 更多