Как открыть и прочитать srcds.exe с помощью python?

Я полный новичок в python, хочу написать программу, которая будет открывать srcds.exe (Сервер Source) и читать ее, выводя все в консоль, пробовал и os и subprocess, ничего не помогает

import os
import codecs
import subprocess
 
srcds = subprocess.Popen("D:\SteamCMD\steamapps\common\EqRp\srcds.bat", stdout = subprocess.PIPE, shell = False)

#subprocess.run("srcds.bat -console")
#with subprocess.Popen("srcds.bat") as f:


print (str(srcds))

Ответы (1 шт):

Автор решения: gil9red

Не знаю что выводит srcds.bat, но покажу 2 способа получения данных.

Для теста завожу батник 1.bat, который запускает питон, в котором выводятся значения от 0 до 4 раз в 1 секунду:

@echo off
echo arg1=%1
python -c "import time;[(print(i), time.sleep(1)) for i in range(5)]"

Способ 1: считываем из stdout при работе программы:

import subprocess

srcds = subprocess.Popen(r"1.bat -console", stdout=subprocess.PIPE, shell=False, universal_newlines=True)
for line in srcds.stdout:
    line = line.rstrip()
    print(line)

Способ 2: дожидаемся окончания программы и считываем результат:

import subprocess

srcds = subprocess.Popen(r"1.bat -console", stdout=subprocess.PIPE, shell=False, universal_newlines=True)
srcds.wait()
out, err = srcds.communicate()
print(out)

Результат:

arg1=-console
0
1
2
3
4
→ Ссылка