[python/pywinauto] cmd.exe에서 출력 읽기

2022. 1. 7. 13:04IT

윈도우에서 작업을 자동화하기 위해서 준비 중이다. 작업 중에서는 console을 열고 명령을 실행할 경우가 있을 것 같아서 cmd.exe를 실행해서 명령어를 실행하고 그 결과를 어떻게 읽을 수 있을지 고민을 했다. pywinauto를 이용해서 cmd를 실행하는 것은 쉽게 할 수 있었는데 console output을 어떻게 읽어야 할 것인지 방법을 찾기가 쉽지 않았다. 

라인을 console에서 읽는 것도 방법이 되겠지만 command를 re-direct하여 text 파일을 읽는 방법으로 구현하면 쉽게 그 결과를 읽을 수 있을 것 같아 다음과 같이 간단한 테스트 프로그램을 만들었다. 

 

from pywinauto import Application
from pywinauto import keyboard

app = Application().start(r'c:\WINDOWS\System32\cmd.exe /k', create_new_console=True, wait_for_idle=False)
dlg = app.top_window()
dlg.type_keys('dir > out.txt', with_spaces=True)
keyboard.send_keys('{ENTER}')
dlg.type_keys('exit', with_spaces=True)
keyboard.send_keys('{ENTER}')
반응형