Рубрики
Без рубрики

Как выполнить файл с аргументами в Python?

В этой статье вы узнаете три способа выполнить программы Python и Non Python из программы Python. Способ 1: Выполните файл с проблемой подпроцесс: в Python, иногда вам нужно выполнить другой файл, скрипт или программу из собственной программы Python и предоставлять аргументы. Есть несколько способов сделать … Как выполнить файл с аргументами в Python? Прочитайте больше “

Автор оригинала: Zack Fink.

В этой статье вы узнаете три способа выполнить программы Python и Non Python из программы Python.

Метод 1: выполнить файл с подпроцессором

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

Есть несколько способов сделать это, но я нахожу наиболее простым, чтобы быть с импортом «подпроцесса».

import subprocess
subprocess.run(['git', 'commit', '-m', 'Testing commits with Automation!'])

Давайте сломаемся именно то, что это значит. subcessess.run () Функция находится в пределах Модуль подпроцесса стандартной библиотеки Python. Он не загружен Python по умолчанию, но является дополнительной функциональностью, которая должна быть импортирована. Как только этот код импортируется в ваш сценарий Python, его можно назвать. Этот модуль заменяет старые функции, такие как ОС.spawn () и OS.System () Отказ

Как минимум, subcessess.run () Функция должна быть передана список, который включает в себя файл или команду для выполнения с каждым аргументом как отдельный элемент списка. В этом случае команда, которую мы работаем Git Commit -M 'тестирование обязуется с автоматией! И он будет работать как подпроцесс переводчика Python.

Иногда аргументы командной строки могут быть сложными и построены список аргументов непросто. Я рекомендую играть с Джэкс Библиотека в интерактивном терминале, пока вы не получите это. Вам не понадобится это в вашем производственном коде, но может помочь сделать концепцию более понятной.

>>> import shlex
>>> shlex.split("git commit -m 'Testing commits with Automation!'")
['git', 'commit', '-m', 'Testing commits with Automation!']

“`

Если после последующих следующих действий этих шагов вы все еще боретесь, чтобы получить команду выполнить, рассмотрим следующее: использование полного пути файла для выполнения (например, /home/user/script.py или c: \ Program Files \ python 3.9 \ python.exe ), проверка разрешений файла, который вы пытаетесь выполнить, чтобы убедиться, что он на самом деле выполняется исполняемым, проверкой опечатки или чувствительности к регистру.

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

  1. Импорт подпрокат модуль
  2. Подготовьте свои аргументы командной строки в Список формат

    1. Джэкс Модуль может помочь с анализом сложных командных строк
  3. Позвоните на функцию subcessess.run () и пропустите его список аргументов как параметр

В библиотеке подпроцесс много полезных функций есть много полезных функций, поэтому рекомендую проверить Официальная документация Отказ Одним из распространенных дополнительных корпусов использования будет захватывать данные, возвращенные в stdout Отказ К счастью, Python делает это легко. Все, что нужно, это дополнительный параметр, Capture_Output = True , к subcessess.run () Вызов функции включен после списка аргументов. Нравится –

output = subprocess.run(["ls", "-l"], capture_output=True)
print(output.stdout)

В приведенном выше примере список каталогов, созданный по LS -L Команда хранит текст, возвращенный stdout внутри вывод .stutout Отказ Команда печати отобразится, что вывод на экране. Захват вывода выполненных подпроцессов позволит вам включить эту обратную связь в вашу программу. Например, если ваш код создает каталог для пользователя, теперь вы можете проверить, если этот каталог уже существует, прежде чем пытаться создать его снова!

Теперь, когда мы охватывали, как выполнить файл с аргументами, как мы можем создать сценарий Python для себя, который обрабатывает аргументы командной строки?

Способ 2: Выполните файл Python с аргументами с использованием Sys.Argv

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

Рассмотрим следующий скрипт:

import sys

print(len(sys.argv))
print(sys.argv)

Если мы запустим этот скрипт из командной строки с помощью python3 args.py arg1 arg2 это вернется:

3
['args.py', 'arg1', 'arg2']

Если этот скрипт уже исполняется исполняемым (и мы включаем #!/USR/Bin/Python3 Линия вверху), мы могли бы выполнить это как это ./ARGSCY ARG1 ARG2 И это вернется:

3
['./args.py', 'arg1', 'arg2']

Обратите внимание, что, хотя только два аргумента были предоставлены скрипту, перечислены три аргумента. Элемент 0 списка – это всегда имя сама сценария. Если пользователь переименовывает сценарий на их конечной точке, sys.argv [0] будет отражать это имя.

Часто при написании программы в Python важно знать, сколько аргументов передаются скрипту для целей проверки ошибок. Если у пользователя подается недостаток параметров, полезное сообщение об ошибке может быть предоставлено инструкциям по использованию.

Рассмотрим следующий код:

import sys

if len(sys.argv) == 1:
    	print("Usage: %s -f" % sys.argv[0])
    	exit()

for argument in sys.argv:
    	if argument == "-f":
            	print("Hello Finxter!")

Этот код кода проверяет, передается ли хотя бы один аргумент к программе, и если нет, он будет распечатать полезное сообщение об ошибке. Тогда это будет Итерация Через список аргументов, проверка на "-F" Отказ Если этот аргумент был принят, программа будет распечатать нашу "Привет Finxter!" сообщение!

Это грубый и элементарный способ обработки аргументов командной строки. В итоге:

  1. Импорт sys модуль
  2. Доступ к аргументам по определенному индексу, например sys.argv [1]

    1. А для петли Может помочь вам, если ваши пользователи размещают аргументы из строя

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

Теперь, когда вы знаете, как включить аргументы командной строки в свой скрипт, как вы их используете, если вы используете IDE, как Pycharm?

Метод 3: Выполните файл Python с аргументами в Pycharm

Внутри среды разработки PYCHARM верхняя панель инструментов будет включать вкладку запуска. Нажмите на него и выберите «Редактировать конфигурации». Вглет новое окно, которое позволит вам ввести в необходимые параметры для выполнения вашего сценария.

Это работает идентично передачу аргументов через командную строку.

Спасибо за чтение! Обязательно проверите остальные наши учебники по HTTPS://blog.finxter.chem om/.