Как запустить программу Python из командной строки

PythonBeginner
Практиковаться сейчас

Введение

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

Создание и запуск простого скрипта Python

Самый распространенный способ запуска программы Python — это написание кода в файле с расширением .py, а затем выполнение этого файла с помощью интерпретатора Python из вашего терминала. Давайте начнем с создания классической программы "Hello, World!".

Сначала вам нужно создать новый файл. В проводнике файлов WebIDE слева щелкните правой кнопкой мыши по пустому месту в каталоге project и выберите "New File". Назовите файл hello.py.

Затем откройте файл hello.py и добавьте следующий код Python. Этот код использует встроенную функцию print() для вывода сообщения в консоль.

print("Hello, LabEx!")

Теперь, когда вы создали скрипт, вы можете его запустить. Откройте интегрированный терминал в вашем WebIDE (если он еще не открыт, вы можете использовать меню Terminal > New Terminal). Терминал должен открыться в каталоге /home/labex/project, где вы сохранили свой файл.

Чтобы выполнить скрипт, введите команду python, за которой следует имя вашего файла:

python hello.py

После нажатия Enter вы увидите вывод вашего скрипта, напечатанный непосредственно в терминале.

Hello, LabEx!

Вы успешно создали и выполнили свой первый скрипт Python из командной строки.

Использование аргументов командной строки

Запуск скриптов из командной строки становится еще мощнее, когда вы можете передавать им информацию во время выполнения. Эта информация называется аргументами командной строки. Модуль sys в Python предоставляет простой способ доступа к ним.

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

Создайте новый файл с именем greet.py в каталоге /home/labex/project.

Добавьте следующий код в greet.py. Этот скрипт импортирует модуль sys. Аргументы командной строки хранятся в списке sys.argv. sys.argv[0] — это всегда имя самого скрипта, а последующие аргументы начинаются с sys.argv[1].

import sys

## Получаем имя из первого аргумента командной строки
name = sys.argv[1]

print(f"Hello, {name}!")

Теперь запустите этот скрипт из терминала, но на этот раз добавьте имя после имени файла скрипта. Например, давайте используем "World".

python greet.py World

Скрипт примет "World" в качестве аргумента и использует его в выводе.

Hello, World!

Вы можете попробовать запустить его со своим именем, чтобы увидеть, как изменится вывод.

python greet.py LabEx
Hello, LabEx!

Этот метод делает ваши скрипты гибкими и повторно используемыми для различных входных данных.

Повышение надежности скриптов

Что произойдет, если запустить скрипт greet.py из предыдущего шага без указания имени? Давайте попробуем.

python greet.py

Вы столкнетесь с ошибкой.

Traceback (most recent call last):
  File "/home/labex/project/greet.py", line 4, in <module>
    name = sys.argv[1]
IndexError: list index out of range

Эта ошибка IndexError возникает потому, что скрипт пытается получить доступ к sys.argv[1], но поскольку аргумент не был предоставлен, этот индекс не существует. Надежный скрипт должен корректно обрабатывать такие случаи.

Давайте модифицируем greet.py, чтобы проверить, был ли предоставлен аргумент. Если нет, будет использовано имя по умолчанию. Мы можем проверить количество элементов в списке sys.argv с помощью функции len(). Если len(sys.argv) больше 1, это означает, что был предоставлен хотя бы один аргумент.

Обновите ваш файл greet.py следующим кодом:

import sys

if len(sys.argv) > 1:
    ## Используем предоставленный аргумент, если он существует
    name = sys.argv[1]
else:
    ## Используем имя по умолчанию, если аргумент не предоставлен
    name = "World"

print(f"Hello, {name}!")

Теперь ваш скрипт стал более надежным. Запустите его снова без аргумента:

python greet.py

На этот раз он выполнится без ошибок и использует имя по умолчанию.

Hello, World!

И он по-прежнему корректно работает, когда вы предоставляете аргумент:

python greet.py LabEx
Hello, LabEx!

Обработка потенциальных ошибок и предоставление поведений по умолчанию являются ключевыми практиками при написании надежных приложений командной строки.

Резюме

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