当前位置: 首页 > 知识库问答 >
问题:

如何接受多个元素的列表作为命令行参数?[重复]

鱼旺
2023-03-14

因此,我有一个如下设置的解析器:

parser.add_argument('-f', '--foo', metavar='foo', type=ast.literal_eval, default=[], help="Foo")

如果用户愿意,我需要让他们输入多个值:

$ python3 foo.py -f [0x01, 0x56, 0xff] -a blah -b blah ...

但是每当我在列表中尝试多个值时,我都会得到一个EOF错误:

...
File "<unknown>", line 1
[0x01,
     ^
SyntaxError: unexpected EOF while parsing

设置解析器来处理这样的事情的正确方法是什么?

共有1个答案

别子实
2023-03-14

只需将其包装在

python3 foo.py -f "[0x01, 0x56, 0xff]" -a blah -b blah ...

然后让foo.py(在本例中)解析它。

 类似资料:
  • 问题内容: 我试图将两个包含整数的列表作为参数传递给python代码。但是将参数作为字符串列表获取。 输入看起来像 我发现以下黑客可以转换列表。 有一个更好的方法吗? 问题答案: 命令行参数始终以字符串形式传递。您将需要自己将它们解析为所需的数据类型。 有像argparse和click这样的库,可以让您定义自己的参数类型转换,但将其视为相同, 因此我怀疑它是否有用。 编辑Jan 2019 这个答案

  • 在Linux或Mac上运行带有命令行参数的Node.js脚本的正确语法是什么? 要在没有参数的情况下运行脚本,我只需使用命令node stuff。但是在这种情况下,我想运行一个名为stuff的脚本。js带有参数“blah”、“hee”、“woohoo!” 。

  • 问题内容: 我正在尝试使用argh库将参数列表传递给python脚本。可以接受类似以下内容的输入: 我的内部代码如下所示: 这是它的行为方式: 这个问题看起来非常简单:argh仅接受第一个参数,并将其视为字符串。如何使它“期望”一个整数列表? 我看到这是如何在optparse中完成的,但是(未弃用的)argparse呢?还是使用argh更好的修饰语法?这些似乎更pythonic。 问题答案: 使用

  • 输入 输出应该是这样的:

  • 问题内容: 我想将命令的每个输出作为多个参数传递给第二个命令,例如: 返回: 我想复制这些输出,例如: 我该怎么做呢?就像是: 问题答案: 您可以使用:

  • 一如之前使用 cargo new 新建一个项目。我们称之为 minigrep 以便与可能已经安装在系统上的grep工具相区别: 第一个任务是让 minigrep 能够接受两个命令行参数:文件名和要搜索的字符串。也就是说我们希望能够使用 cargo run、要搜索的字符串和被搜索的文件的路径来运行程序,像这样: $ cargo run searchstring example-filename.tx