請幫助我在python中編寫簡單的控制檯應用程序。它應該將所有輸入重定向到系統shell(bash或windows cmd或powershell)並將其所有輸出都提供給屏幕。 只要我可以說從python應用程序運行終端。與控制檯(sh,bash,cmd,powershell)的透明交互
下一個代碼,是用一些奇怪的行爲:第一個3次後的任何鍵按下時輸出一些以前的命令(可能是從高速緩存)
#!/bin/python3
import subprocess
import sys
proc = subprocess.Popen(['bash'])
while True:
buff = sys.stdin.readline()
stdoutdata, stderrdata = proc.communicate(buff)
if(stdoutdata):
print(stdoutdata)
else:
print('n')
break
我在發佈問題後編寫的代碼。我明白,沒有代碼的問題看起來不明顯。有問題的時候我還沒有想法。 @格雷爾,原諒我,如果這是粗魯的。 – kyb
@kyb沒關係,我現在刪除了那個註釋,你添加了代碼:) – grael
當我用'subprocess.Popen(['cmd])'從Windows PowerShell運行這個腳本時,它可以正常工作。當使用Ctrl + B運行時,Sublime Text顯示Linux下和Windows下的黑色死機。 – kyb