当前位置: 首页 > 面试题库 >

在python中将列表指定为命令行参数

蒋正平
2023-03-14
问题内容

我正在使用getopt处理命令行可选参数,该参数应接受列表。像这样:

foo.py --my_list=[1, 2, 3, 4,5]

但这会修剪“ [1,”之后的所有内容

我的问题是:A)有没有一种方法可以指定列表而不将其转换为字符串?(使用getopt)

B)如果我要将列表转换成字符串,如何将这个列表转换成字符串?例如像mylist.split(“?”)这样的东西可以消除方括号?有没有更好的办法?

谢谢


问题答案:

我可以想到两种选择:

  • 使用optparse,然后使用appendaction来指定要执行的操作:foo.py --my_list=1 --my_list=2 ...
  • 将命令行指定为foo.py --my_list='1,2,3,4,5',然后用于x.split(',')在列表中获取值。您可以使用getoptoptparse用于此方法。

第一种方法的优点是,您可以直接在列表中获取整数值,但会浪费命令行的时间(但是如果需要,可以添加单字符选项--my_list)。第二个优势是更短的命令行,但之后split(),你需要将字符串值转换'1''2'等等,为整数(很容易为好)。



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

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

  • 问题内容: 当提供一些参数时,我想使我的python脚本从命令行运行。但是,参数之一应该是特定于脚本一个片段的选项列表。字符串解析是在逗号分隔“命令行列表”字符串之后实际构造列表的唯一方法吗?如果是这样,您将如何处理? 示例:-details = [‘name’,’title’,’address’] 问题答案: 程序: 命令行: 输出: 此代码段将执行短或长命令切换(例如或),并在切换到Pytho

  • 如何将命令行参数转换为bash脚本数组? 我想拿这个: 并将其转换为 这样我就可以在脚本中进一步使用myArray。 这篇之前的SO帖子很接近,但没有深入到如何创建数组:如何在Bash中解析命令行参数? 我需要将参数转换为常规bash脚本数组;我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作。我想我在寻找一个“追加”函数或类似的东西? 更新:我还想问一下如何检查零参数并

  • 问题内容: 如果我期望像001或999这样的东西(这次让我们将期望值限制为001 … 999范围),并且传递了其他一些参数,并且想忽略任何意外内容,那么这将是处理命令行参数的简单表达式? 我知道,例如,如果我需要确定是否在参数之间传递了“ debug”,它将像这样: 如何确定是否通过了009或575? 所有这些都是预期的电话: 在这一点上,我不在乎这样的电话: …第一个-由于存在多个“数字”参数;

  • 问题内容: 我是Python和Eclipse的新手,在理解如何将命令行参数传递给在Eclipse(Pydev)中运行的脚本时遇到一些困难。 以下链接说明了如何将命令行参数传递给python脚本。 要将命令行参数传递给模块(来自上面链接的代码), 我需要输入python控制台 要么 如何在Eclipse(Pydev)中将相同的参数传递给Python脚本? 谢谢 ! 问题答案: 如果您希望程序以交互方