Python:从命令行输入创建元组
我有一个程序,它提供如下命令行输入: python2.6程序py-p a1 b1 c1 现在,我们可以有任意数量的输入参数,即-pa1和-pa1c1b1e2都是可能的 我想基于变量输入参数创建一个元组。任何关于如何做到这一点的建议都将非常有用!固定长度的元组很容易,但我不确定如何实现可变长度元组 谢谢。这应该可以做到: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:
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:])