Найти в Дзене
IT Start | Python

Аргументы командной строки в Python через sys.argv

Как вы, возможно, знаете, Python-скрипты можно запускать не только через терминал или командную строку, но и передавать в них значения прямо при запуске. Такие значения называются аргументами командной строки. В этой статье мы рассмотрим, как обрабатывать их в Python с помощью встроенного модуля sys и его списка argv. Модуль sys является частью стандартной библиотеки Python и даёт доступ к различным функциям и переменным, связанным с работой интерпретатора. Одной из таких полезных возможностей является список sys.argv. Этот список содержит аргументы, которые были переданы скрипту в момент его запуска через терминал. Первый элемент (sys.argv[0]) — это имя самого исполняемого файла. Все последующие элементы — это аргументы, введённые пользователем. Создадим файл example.py со следующим содержанием: import sys print("Аргументы командной строки:")
for i, arg in enumerate(sys.argv):
print(f"{i}: {arg}") Теперь запустим его из терминала: python example.py привет 123 тест Результат: Аргумен
Оглавление

Введение

Как вы, возможно, знаете, Python-скрипты можно запускать не только через терминал или командную строку, но и передавать в них значения прямо при запуске. Такие значения называются аргументами командной строки. В этой статье мы рассмотрим, как обрабатывать их в Python с помощью встроенного модуля sys и его списка argv.

Что такое sys.argv в Python?

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

Этот список содержит аргументы, которые были переданы скрипту в момент его запуска через терминал. Первый элемент (sys.argv[0]) — это имя самого исполняемого файла. Все последующие элементы — это аргументы, введённые пользователем.

Простой пример

Создадим файл example.py со следующим содержанием:

import sys

print("Аргументы командной строки:")
for i, arg in enumerate(sys.argv):
print(f"{i}: {arg}")

Теперь запустим его из терминала:

python example.py привет 123 тест

Результат:

Аргументы командной строки:
0: example.py
1: привет
2: 123
3: тест

Как мы видим, каждый аргумент — это строка. Даже если мы передаим число, его нужно будет привести к нужному типу вручную.

Простой пример

Зачем вообще использовать sys.argv? Вот несколько реальных сценариев:

  • Передача пути к файлу или директории;
  • Передача имени пользователя или параметров авторизации;
  • Определение режима работы скрипта (например, —debug или —prod);
  • Управление конфигурацией без изменения кода.

Пример: создадим скрипт, который складывает два числа, переданных в командной строке.

import sys

if len(sys.argv) != 3:
print("Использование: python script.py число1 число2")
sys.exit(1)

try:
a = float(sys.argv[1])
b = float(sys.argv[2])
print(f"Сумма: {a + b}")
except ValueError:
print("Ошибка: оба аргумента должны быть числами")

Запускаем его:

python example.py привет 123 тест

Результат:

Сумма: 10.7

Недостатки и альтернатива

Работа с sys.argv — это базовый способ обработки аргументов. Однако у него есть ограничения:

  • Все аргументы — строки;
  • Нет встроенной поддержки флагов (—help, -v, и т. д.);
  • Приходится вручную проверять количество и формат аргументов.

Если хочется более гибкий способ обработки параметров, стоит обратить внимание на модули argparse, click или typer. Но для простых задач sys.argv — отличный выбор.

Видеоурок про argparse

В качестве дополнения можете ознакомиться с моим видео по argparse.

Заключение

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

В ходе статьи мы с Вами разобрались, как работа с аргументами командной строки в Python с помощью sys.argv. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Мой Telegram канал по Python

Мой YouTube канал

Курс по созданию телеграм-ботов на Python с фреймворком Aiogram

Мой курс по Python (50 видоуроков + дополнительные уроки)

Курс по созданию GUI на Python