Как открыть и прочитать 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
Способ 1: считываем из
→ Ссылка
Не знаю что выводит 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