0

我试图找到这个问题的答案,但似乎没有什么适合这个问题......

我想在一个简单的行中将 a 分配sys.argv给一个变量,而不是执行以下操作:

var1 = sys.argv[1]
var2 = sys.argv[2]
var3 = sys.argv[3]
var4 = sys.argv[4]
var5 = sys.argv[5]
var6 = sys.argv[6]
etc...

这可能吗?

干杯,

米宾

4

2 回答 2

5

是的:

var1,var2,var3,var4 = sys.argv[1:5]

这仅在右侧的可迭代对象有 4 个元素时才有效。Python3.x 稍微扩展了这个功能:

var1,var2,var3,var4,*rest = sys.argv[1:]

在此变体中,您将 的前 4 个元素解压缩sys.argv[1:]到变量中,其余元素sys.argv放入 list 中rest

对于命令行解析,我肯定会推荐argparse. 它随 python2.7 一起提供,可以很容易地为旧版本的 python 安装。

于 2012-09-13T14:19:59.937 回答
2

您可以使用以下语法:

var1, var2, var3 = sys.argv[1:]

请注意,变量的数量必须与列表的长度相匹配。通常,最好使用getopt 模块

于 2012-09-13T14:19:50.907 回答