如何在Python中存储命令行用户输入?

1 投票
2 回答
1386 浏览
提问于 2025-04-16 19:20

我正在尝试运行一个脚本,最多可以接受8个参数。例如:

pythonscript.py hello there howdy do 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'

2 个回答

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的命令行中运行的,所以sys.argv的内容和从脚本运行时是不一样的。

你能把错误信息或者你得到的数据和你期望的数据发出来吗?

1

这里有另一种方法,你不需要明确列出 sys.argv 的各种元素:

import sys

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

这个方法利用了Python的切片语法。

撰写回答