Поиск по сайту:

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


Аргументы командной строки Python — это входные параметры, которые передаются сценарию при их выполнении. Почти все языки программирования поддерживают аргументы командной строки. Затем у нас также есть параметры командной строки для установки некоторых конкретных параметров программы.

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

Существует множество вариантов чтения аргументов командной строки Python. Наиболее распространены три из них:

  1. Python sys.argv
  2. Модуль Python getopt
  3. Модуль аргументов Python

Давайте рассмотрим простую программу, чтобы научиться читать и использовать аргументы командной строки Python.

Системный модуль Python

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

import sys

print(type(sys.argv))
print('The command line arguments are:')
for i in sys.argv:
    print(i)

Модуль Python getopt

Модуль Python getopt очень похож на функцию C getopt() для разбора параметров командной строки. Модуль Python getopt полезен при анализе аргументов командной строки, когда мы хотим, чтобы пользователь также ввел некоторые параметры. Давайте рассмотрим простой пример, чтобы понять это.

import getopt
import sys

argv = sys.argv[1:]
try:
    opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
    print(opts)
    print(args)
except getopt.GetoptError:
    # Print a message or do something useful
    print('Something went wrong!')
    sys.exit(2)

Модуль аргументов Python

Модуль Python argparse — предпочтительный способ анализа аргументов командной строки. Он предоставляет множество опций, таких как позиционные аргументы, значение по умолчанию для аргументов, справочное сообщение, указание типа данных аргумента и т. д. В самой простой форме мы можем использовать его, как показано ниже.

import argparse

parser = argparse.ArgumentParser()
parser.parse_args()

  • sys.argv
  • модуль getopt
  • модуль синтаксического анализа