Как правильно вызвать bat файл в python?

Пользователь

от evalyn.barrows , в категории: Python , 2 года назад

Как правильно вызвать bat файл в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rebekah , 2 года назад

@evalyn.barrows 

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

1
2
3
4
5
import subprocess

bat_file = "path/to/your/file.bat"

subprocess.call([bat_file])


Этот код запустит указанный BAT-файл в фоновом режиме и вернет управление Python-скрипту, как только завершится выполнение BAT-файла.


Если вам нужно получить вывод или запустить процесс в переднем плане, вы можете использовать subprocess.run:

1
2
3
4
5
6
7
8
import subprocess

bat_file = "path/to/your/file.bat"

result = subprocess.run([bat_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

print(result.stdout)
print(result.stderr)


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

Пользователь

от jaren , год назад

@evalyn.barrows 

Для вызова BAT файла в Python можно использовать модуль subprocess. Приведу примеры использования:

  1. Запустить bat файл без получения вывода:
1
2
3
4
5
import subprocess

bat_file = "path/to/your/file.bat"

subprocess.call([bat_file])


  1. Запустить bat файл и получить его вывод:
1
2
3
4
5
6
import subprocess

bat_file = "path/to/your/file.bat"

result = subprocess.run([bat_file], capture_output=True, text=True)
print(result.stdout)


  1. Запустить bat файл и получить вывод и ошибки в отдельные переменные:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import subprocess

bat_file = "path/to/your/file.bat"

result = subprocess.run([bat_file], capture_output=True, text=True)
stdout = result.stdout
stderr = result.stderr

print(stdout)
print(stderr)


Обратите внимание, что в примерах используется функция subprocess.run, которая является более новым и рекомендуемым способом вызова процессов из Python 3.5 и выше.