Как я могу сохранить пользовательский ввод из командной строки в Python?

1

Я пытаюсь запустить 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'
Теги:

2 ответа

1

Здесь вы можете сделать другой способ, который не требует явного указания различных элементов sys.argv:

import sys

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

Это использует синтаксис разреза Python.

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 не является тем, что вы получаете, если запускаете его из script.

Не могли бы вы отправить сообщение об ошибке или данные, которые вы получаете, и данные, которые вы ожидаете?

  • 0
    Ба! Я дурачок Я пытался работать с переменной в функции, но делал это не по порядку. Поскольку я не выходил из сценария изящно при ошибке, я не смог напечатать содержимое массива, чтобы подтвердить, что он заполняется, поэтому я предположил, что моей проблемой было заполнение массива.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню