Python предоставляет модуль getopt, который помогает анализировать параметры и аргументы командной строки.
$ python test.py arg1 arg2 arg3
Модуль Python sys обеспечивает доступ к любым аргументам командной строки с помощью sys.argv. Это используется для двух целей:
- argv - список аргументов командной строки.
- len(sys.argv) - количество аргументов командной строки питон.
Здесь sys.argv [0] - это программа, т.е. имя сценария.
Пример
Рассмотрим следующий сценарий test.py:
#!/usr/bin/python
import sys
print 'Количество аргументов:', len(sys.argv), 'аргументы.'
print 'Список аргументов:', str(sys.argv)
Теперь запустим вышеуказанный скрипт следующим образом:
$ python test.py arg1 arg2 arg3
Это дает следующий результат:
Количество аргументов: 4 аргумента.
Список аргументов: ['test.py', 'arg1', 'arg2', 'arg3']
Примечание: как упоминалось выше, первым аргументом всегда является название сценария, и оно также учитывается в количестве аргументов.
Анализ аргументов командной строки Python
Python предоставил модуль getopt, который помогает анализировать опции и аргументы командной строки. Этот модуль предоставляет две функции и исключение для включения синтаксического анализа аргументов командной строки.
Метод getopt.getopt
Этот метод анализирует параметры командной строки и список параметров. Ниже приведен простой синтаксис этого метода:
getopt.getopt(args, options, [long_options])
Подробности параметров:
- args− Список аргументов для анализа.
- options − Строка букв для опций, которую сценарий хочет распознать, при этом опции, требующие аргумента, должны сопровождаться двоеточием (:).
- long_options − необязательный параметр, он должен указываться списком строк с именами длинных опций, которые должны поддерживаться. Длинные опции, требующие аргумента, должны сопровождаться знаком равенства ('='). Для принятия только длинных опций, опции должны быть пустой строкой.
- Этот метод возвращает значение, состоящее из двух элементов: первый — это список пар (опция, значение). Второй — это список аргументов программы, оставшихся после удаления списка опций.
- Каждая возвращенная пара опция-значение имеет опцию в качестве первого элемента с префиксом дефиса для коротких опций (например, '-x') или двумя дефисами для длинных опций (например, '--long-option’).
Исключение getopt.GetoptError
Исключение возникает, когда в списке аргументов обнаруживается нераспознанная опция или когда опция, требующая аргумента, не имеет его.
Аргументом исключения является строка, указывающая причину ошибки. Атрибуты msg и opt содержат сообщение об ошибке и соответствующую опцию.
Пример передачи аргументов командной строке Python
Предположим, мы хотим передать два имени файла через командную строку, и мы также хотим дать возможность проверить использование сценария. Использование скрипта выглядит следующим образом:
usage: test.py -i -o
Вот следующий скрипт для test.py:
#!/usr/bin/python
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print 'test.py -i -o '
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'test.py -i -o '
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print 'Входной файл "', inputfile
print 'Выходной файл "', outputfile
if __name__ == "__main__":
main(sys.argv[1:])
Теперь запустите приведенный выше сценарий следующим образом:
$ test.py -h
usage: test.py -i -o
$ test.py -i BMP -o
usage: test.py -i -o
$ test.py -i inputfile
Input file is " inputfile
Выходной файл "
Оглавление
- 1. Python – Самоучитель для начинающих
- 2. Python – Обзор
- 3. Python – Установка среды
- 4. Python – Базовый синтаксис
- 4.1. Python – Аргументы командной строки
- 5. Python – Типы переменных
- 6. Python – Основные операторы
- 6.1. Python – Арифметические операторы
- 6.2. Python – Операторы сравнения
- 6.3. Python – Операторы присваивания: примеры
- 6.4. Python – Побитовые операторы
- 6.5. Python – Логические операторы
- 6.6. Python – Операторы членства
- 6.7. Python – Операторы идентификации
- 6.8. Python – Приоритет операторов
- 7. Python – Условные операторы
- 7.1. Python – Условие if
- 7.2. Python – Условные операторы if...else и elif
- 7.3. Python – Вложенные операторы if
- 8. Python – Циклы
- 8.1. Python – Цикл while
- 8.2. Python – Цикл for
- 8.3. Python – Вложенные циклы
- 8.4. Python – Оператор break
- 8.5. Python – Оператор continue
- 8.6. Python – Оператор pass
- 9. Python – Числа
- 9.1. Python – Метод abs()
- 9.2. Python – Метод ceil()
- 9.3. Python – Метод cmp()
- 9.4. Python – Метод exp()
- 9.5. Python – Метод fabs()
- 9.6. Python – Метод floor()
- 9.7. Python – Метод log()
- 9.8. Python – Метод log10()
- 9.9. Python – Метод max()
- 9.10. Python – Метод min()
- 9.11. Python – Метод modf()
- 9.12. Python – Метод pow()
- 9.13. Python – Метод round()
- 9.14. Python – Метод sqrt()
- 9.15. Python – Метод choice()
- 9.16. Python – Метод randrange()
- 9.17. Python – Метод random()
- 9.18. Python – Метод seed()
- 9.19. Python – Метод shuffle()
- 9.20. Python – Метод uniform()
- 9.21. Python – Метод acos()
- 9.22. Python – Метод asin()
- 9.23. Python – Метод atan()
- 9.24. Python – Метод atan2()
- 9.25. Python – Метод cos()
- 9.26. Python – Метод hypot()
- 9.27. Python – Метод sin()
- 9.28. Python – Метод tan()
- 9.29. Python – Метод degrees()
- 9.30. Python – Метод radians()