Windows Vista와 Python 2.7.2를 사용하고 있습니다. 그러나 대답은 Python 일 필요는 없습니다.WIndows : 새로운 콘솔 창을 만드는 서브 프로세스, stdin/out을 잃는
그래서`dir '과 같은 명령 행 프로그램에 대해 stdin/stdout 서브 프로세스 (파이썬 사용)를 시작하고 상호 작용할 수 있습니다.
는 - 그러나 -
내가 지금 통화 할 프로그램은 기존의 cmd.exe를 윈도우에서 실행되는 경우에도, 새로운 핸들, (저주하지 않음) Windows에서 자체에 대한 새로운 콘솔 창을 좋아한다. (이상한, VLC의 "원격 제어"인터페이스입니다.) 어떤 방법이 있습니까 :
- 프로세스 콘솔의 stdin/out에 대한 핸들 가져 오기; 또는
- bash에서 bash를 호출하는 것과 같이 이전 버전에서 새 셸을 실행하려면 어떻게해야합니까?
오류가 발생하여 서브 프로세스 코드를 해킹 할 수 있으므로 Windows에서 새 콘솔을 설정하고 출력을 전송하는 방법은 무엇입니까?
편집 : 예.
>>> p = Popen(args=['vlc','-I','rc'],stdin=PIPE,stdout=PIPE)
# [New console appears with text, asking for commands]
>>> p.stdin.write("quit\r\n")
Traceback:
File "<stdin>", line 1, in <module>
IOError: [Errno 22] Invalid argument
>>> p.stdout.readline()
''
>>> p.stdout.readline()
''
# [...]
그러나 새 콘솔 창은 키보드 입력을 허용하지 않습니다.
보통 반면 :
>>> p = Popen(args=['cmd'],stdin=PIPE,stdout=PIPE)
>>> p.stdin.write("dir\r\n")
>>> p.stdin.flush()
>>> p.stdout.readline() #Don't just do this IRL, may block.
'Microsoft Windows [Version...
@eryksun에 의해 설명 될 때 그래, 난'VLC를 실행 해요 - 내가 rc'. – asdf