Я пытаюсь запустить script с 8 аргументами. Например:
pythonscript.py привет там howdy аргумент аргумент5 аргумент7 аргумент8
Я хочу хранить аргументы 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'
Здесь вы можете сделать другой способ, который не требует явного указания различных элементов sys.argv
:
import sys
if len(sys.argv) > 5:
values = sys.argv[5:]
else:
values = '127.0.0.1'
Это использует синтаксис разреза Python.
Я не совсем понимаю, что здесь не так:
>>> 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 не является тем, что вы получаете, если запускаете его из script.
Не могли бы вы отправить сообщение об ошибке или данные, которые вы получаете, и данные, которые вы ожидаете?