0
아래 예제를 사용하여 다른 스크립트를 호출하고 실행이 완료된 후 전체 출력을 생성하는 내 스크립트는 다음과 같습니다. 동시.
출력은 한 줄씩 출력되고 결국 전체 출력이 출력되지 않습니다.파일에서 인쇄 로그를 쓰는 동안 화면 버퍼에서 지연되는 파이썬 하위 프로세스
./My_Tests.py ALL
TC 1 : PASSED
TC 2 : PASSED
Tatal Passed Tests : 2
Tatal Failed Tests : 0
My_Tests.py는 :
from subprocess import Popen, PIPE, STDOUT
with Popen("./tests.py", stdout=PIPE, stderr=STDOUT, bufsize=1, universal_newlines=True) as p, \
open('tests.log', 'ab') as file:
for line in p.stdout: # b'\n'-separated lines
print(line, end='') #new addition
sys.stdout.buffer.write(line)
file.write(line)
또한 명령 아래로 시도했지만 그것은 단지 터미널과 파일에 출력을 저장하지 인쇄합니다.
수입 서브 프로세스
# Run command and redirect it by | tee to a file named out.txt
p = subprocess.Popen([command, '|', 'tee', 'out.txt'])
p.wait()
아무도 도와 줄 수 있습니까? –
u가 https://stackoverflow.com/questions/15535240/python-popen-write-to-stdout-and-log-file-simultaneously에서 볼 수있는 기회를 얻었습니까 –
감사합니다. 그렇습니다. 그러나 나는 그것에 갇혀있었습니다. 어떻게 내가 내 문제를 위해 그것을 사용할 수 있습니다. 팁 고마워. –