Аргументы командной строки

argumenty komandnoj stroki Контекст выполнения сценариев

Модуль sys позволяет также получить те слова, которые были введены в команде, запустившей сценарий на языке Python. Эти слова обычно называются аргументами командной строки и находятся во встроенном списке строк sys.argv. Программисты на C могут заметить сходство с массивом argv в языке C (массивом строк). В интерактивном режиме смотреть особенно не на что, так как для запуска Python в этом режиме ему не требуется передавать аргументы командной строки:

>>> import sys

>>> sys.argv

[‘’]

Чтобы действительно увидеть аргументы, нужно запустить сценарий из командной строки. В примере 3.1 приводится простой до безобразия сценарий, который всего лишь выводит список argv для изучения.

Пример 3.1. PP4E\System\testargv.py

import sys print(sys.argv)

Если запустить этот сценарий, он выведет список аргументов командной строки. Обратите внимание, что первым элементом всегда является имя самого выполняемого сценария, независимо от способа запуска (смотрите врезку «Выполняемые сценарии в Unix» далее в этой главе):

C:\\PP4E\System> python testargv.py [‘testargv.py’]

C:\\PP4E\System> python testargv.py spam eggs cheese [‘testargv.py’, ‘spam’, ‘eggs’, ‘cheese’]

C:\\PP4E\System> python testargv.py -i data.txt -o results.txt [‘testargv.py’, ‘-i’, ‘data.txt’, ‘-o’, ‘results.txt’]

Последняя команда в этом фрагменте иллюстрирует общепринятое соглашение. Подобно аргументам функции, параметры командной строки иногда передаются по позиции, а иногда по имени с помощью пары «-имя значение». Например, пара i data.txt означает, что значением ключа i является data.txt (например, имя входного файла). В качестве параметров командной строки допускается передавать любые слова, но обычно программы накладывают на них некоторые структурные ограничения.

Аргументы командной строки играют в программах такую же роль, как аргументы в функциях: они просто позволяют передать в программу информацию, которая может быть различной для каждого запуска программы. То обстоятельство, что они не определяются жестко в программном коде, позволяет использовать сценарии более универсальными способами. Например, аргументы командной строки могут использоваться для передачи имен файлов сценариям, их обрабатывающим, — взгляните на сценарий more.py в главе 2 (пример 2.1), который был нашим первым примером. Другие сценарии могут принимать флаги режима обработки, адреса Интернета и так далее.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий