2016-03-10 3 views
-2

Что означает следующий фрагмент кода? Я не понимаю понятия sys.argv. Я слышал, что это связано с подсказками командной строки, но мой словарь недостаточно хорош, чтобы понять это. Также выход странный. Я не понимаю, как перебирается список и как элементы попадают туда или даже откуда они появляются и что они означают. Это меня действительно сбивает с толку, поэтому понимание понимания было бы очень оценено. Пожалуйста, используйте термины beinner, чтобы я мог понять это.Что означает этот код, относящийся к sys.args?

import sys 

print 'Number of arguments:', len(sys.argv), 'arguments.' 
print 'Argument List:', str(sys.argv) 
+0

[Вы читали документ?] (Https://docs.python.org/2/library/sys.html) –

ответ

3

Большинство программ принимают аргументы, чтобы изменить их поведение. например

grep some_string myfile.ext 

Эта команда (в системах UNIX) ищет 'some_string' в myfile.ext и выводит совпадающие строки в консоли.

Итак, вопрос в том, как grep (программа, которая выполняется), знать, что искать, или какой файл искать? Ответ очевиден - он передаёт эти аргументы через командную строку. Вы имеете право передавать аргументы из commandlint ваших программ питона тоже:

python my_python_file.py argument1 argument2 

В этом случае, если my_python_file.py имел содержание в вашем вопросе, sys.argv будет содержать ['my_python_file.py', 'argument1', 'argument2']

И вы можете посмотреть в sys.argv и см. 'argument1', и ваш код предпримет определенные действия соответствующим образом. Обратите внимание, что довольно редко можно разобрать sys.argv вручную, если это не действительно простой чехол. Обычно вы должны использовать что-то вроде argparse, чтобы проанализировать аргументы для вас и дать вам проанализированную информацию в гораздо более удобном для управления формате.

2

sys.argv список string с содержащих аргументы, когда Python сценарий был выполнен (т.е. >> python main.py arg1 arg2).

Обратите внимание, что первым аргументом всегда будет имя команды. Первый «фактический» аргумент находится в sys.argv[1] (при условии, что был принят хотя бы один аргумент).

+0

Просьба пояснить эти аргументы. Кто они такие? Просто имена файлов и тип файла? Вот как это выглядит. Я думаю, что я ушел. –

+0

См. Ответ @mgilson дает –

Смежные вопросы