07 Июл 2023
2 мин
541

Обработка аргументов командной строки в Python

Во время работы с Python часто возникает ситуация, когда необходимо передать скрипту аргументы через командную строку. Например, есть скрипт script.py, который

Содержание

Во время работы с Python часто возникает ситуация, когда необходимо передать скрипту аргументы через командную строку. Например, есть скрипт script.py, который должен принимать на вход имя файла и возвращать количество строк в этом файле. В командной строке это будет выглядеть так:

python script.py filename.txt

В этом случае filename.txt является аргументом командной строки.

Для того чтобы обработать аргументы командной строки в Python, существует несколько способов. Один из самых простых и распространённых — использование модуля sys.

Использование модуля sys

Модуль sys в Python предоставляет доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором python. Одной из таких переменных является sys.argv. Это список, который содержит аргументы командной строки, переданные скрипту. Первый элемент этого списка sys.argv[0] — это имя самого скрипта. Аргументы, переданные скрипту, начинаются с sys.argv[1].

Приведём пример скрипта, который выводит все аргументы командной строки:

import sys

for i in range(len(sys.argv)):
    print(f"Аргумент {i} : {sys.argv[i]}")

Таким образом, для обработки аргументов командной строки достаточно просто проитерироваться по списку sys.argv.

Использование модуля argparse

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

argparse — это более продвинутый модуль для обработки аргументов командной строки, который позволяет не только получать аргументы, но и генерировать сообщения помощи, проверять корректность аргументов и многое другое.

Пример использования argparse:

import argparse

parser = argparse.ArgumentParser(description='Обработка аргументов командной строки')
parser.add_argument('filename', help='Имя файла')

args = parser.parse_args()

print(f"Имя файла: {args.filename}")

В этом примере argparse создаёт парсер аргументов командной строки, который ожидает на вход один аргумент — filename. Затем аргументы командной строки разбираются с помощью метода parse_args(), и можно обращаться к каждому аргументу по его имени (args.filename).

Таким образом, для обработки аргументов командной строки в Python можно использовать модули sys или argparse в зависимости от сложности задачи.

Содержание

Добавить комментарий

Определи профессию по рисунку