Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从命令行输入创建元组_Python_Command_Command Line Arguments_Tuples - Fatal编程技术网

Python:从命令行输入创建元组

Python:从命令行输入创建元组,python,command,command-line-arguments,tuples,Python,Command,Command Line Arguments,Tuples,我有一个程序,它提供如下命令行输入: python2.6程序py-p a1 b1 c1 现在,我们可以有任意数量的输入参数,即-pa1和-pa1c1b1e2都是可能的 我想基于变量输入参数创建一个元组。任何关于如何做到这一点的建议都将非常有用!固定长度的元组很容易,但我不确定如何实现可变长度元组 谢谢。这应该可以做到: import sys t = tuple(sys.argv) 由于您可能不需要脚本名称,因此您可能需要执行以下操作: if len(sys.argv) > 1:

我有一个程序,它提供如下命令行输入:

python2.6程序py-p a1 b1 c1

现在,我们可以有任意数量的输入参数,即-pa1和-pa1c1b1e2都是可能的

我想基于变量输入参数创建一个元组。任何关于如何做到这一点的建议都将非常有用!固定长度的元组很容易,但我不确定如何实现可变长度元组

谢谢。

这应该可以做到:

import sys
t = tuple(sys.argv)
由于您可能不需要脚本名称,因此您可能需要执行以下操作:

if len(sys.argv) > 1:
    t = tuple(sys.argv[1:])

迭代sys.argv,直到到达另一个标志。

您可以使用tuple()构造函数将列表转换为元组:

>>> tuple([1, 2, 3, 4])
(1, 2, 3, 4)
在sys.argv=)或其一部分上使用此选项。
干杯

你为什么不看看刚才的讨论

元组的长度是固定的。一旦创建元组,就不能修改它

命令行参数存储在列表中

import sys
t = tuple(sys.argv[1:]) # since sys.argv[0] is the name of the script

您可以使用getopt从命令行获取参数。它返回一个参数列表,然后可以使用tuple()将其转换为元组


请参见

确切问题的正确答案是
tuple(sys.argv[1:])
,但是有更好的方法获取命令行参数,以便您可以更恰当地使用它们。尝试
optpass


如果您使用的是Python 2.7,那么应该使用
argparse

您知道'sys'包吗?如果
len(l)
l[n-1:][/code>将给出
[]
,那么使用sys.argv(请参阅)执行所需操作应该非常容易。而
元组([])
是0元元组,
()
->不需要这张支票。
import sys

t1 = tuple(sys.argv)
t2 = tuple(sys.argv[1:])

print t1
print t2
import getopt
import sys

def main(argv):
    opts, args = getopt.getopt(argv, 'p')
    return tuple(args)
if __name__=='__main__':
    main(sys.argv[1:])