我正在嘗試將類似 REPL 的命令行程序集成到 Python 項目中。命令行程序接受一個輸入字符串并返回一個輸出字符串,它在單獨運行時工作正常。問題是,當我嘗試使用Popen().stdout.peek()或.read()時,它會掛起并且不產生輸出。>>> p = Popen('Test.exe', stdin=PIPE, stdout=PIPE, stderr=PIPE)>>> p.stdin.write(bytes('message\n', 'utf-8'))8>>> p.stdin.flush()>>> p.stdout.peek() # Hangs有趣的是,如果命令行程序也是用 Python 編寫的,這確實有效,但是當使用我真正想使用的程序時,它會掛起。在命令行中手動運行時,這兩個程序都按預期運行。我也不能使用,p.communicate('message')因為進程是有狀態的,我需要執行多個命令。
添加回答
舉報
0/150
提交
取消