2011-06-10 60 views
1

我想用最多8个参数运行一个脚本。例如:如何在Python中存储来自命令行的用户输入?

pythonscript.py你好你好做argument5 argument6 argument7 argument8

我想5-8参数存储在阵列中,但是,如果没有输入参数5-8,我希望有一个默认值分配给一个变量。我不在乎它是否是元组,输入中的数据不会改变。

我有这个到目前为止,但不能得到它的工作。我错过了什么?

import sys 

try: 
    values = (sys.argv[5],sys.argv[6],sys.argv[7],sys.argv[8]) 
except: 
    values ='127.0.0.1' 

回答

0

我不太看看有什么错在这里:

>>> import sys 
>>> 
>>> try: 
...  values = (sys.argv[5],sys.argv[6],sys.argv[7],sys.argv[8]) 
... except: 
...  values ='127.0.0.1' 
... 
>>> values 
'127.0.0.1' 

请注意,这是从Python shell中运行,因此sys.argv中是不是你得到,如果从脚本运行。

您可以发布错误消息,或者您获得的数据以及您期望的数据吗?

+0

Bah!我是个假人。我试图在一个函数中处理一个变量,但是它是按顺序执行的。因为我错误地没有正确退出脚本,所以我无法打印数组的内容以确认它正在填充,所以我认为我的问题是数组填充。 – 2011-06-10 19:26:58

1

这里的另一种方式,你可以做到这一点并不需要你明确说明的sys.argv的各种元素:

import sys 

if len(sys.argv) > 5: 
    values = sys.argv[5:] 
else: 
    values = '127.0.0.1' 

这需要Python的切片语法的优势。

相关问题