Аргументы Python, для в пунктах - PullRequest
2 голосов
/ 01 января 2012

Я бы хотел передать список целых чисел в качестве аргумента скрипту Python.

Пример кода:

items = sys.argv[1]
for item in items:
    print item

Моя команда будет:

python myscript.py 101,102,103

Проблема в том, что «для» дает мне каждую цифру, а не каждый элемент, разделенный запятыми.

Я уверен, что есть простой ответ.Как мне перебрать значения с разделителями, а не отдельные цифры?

Большое спасибо!

Ответы [ 4 ]

5 голосов
/ 01 января 2012

Обычно аргументы командной строки разделяются пробелами. Числа, разделенные запятыми, поступают как одна строка, а for разделяет строку на символы. Вам нужно разделить его запятыми: items.split(','). Как только вы это сделаете, вы обнаружите, что у вас все еще есть строки, поэтому вам нужно преобразовать каждую строку в целое число.

items = argv[1]
for item in items.split(','):
    print int(item)
3 голосов
/ 01 января 2012

Я думаю, вы должны использовать напрямую:

python myscrypt.py 101 102 103

и

items = sys.argv
2 голосов
/ 01 января 2012

Аргумент командной строки передается вашему сценарию в виде одной строки, поэтому вам нужно разделить его, используя «,» в качестве разделителя, чтобы вернуть отдельные целые числа.

items = sys.argv[1]
for item in items.split(','):
    print item
2 голосов
/ 01 января 2012

Разделить вход:

items = sys.argv[1].split(',')
for item in items:
    print item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...