-3
我發現這個代碼片段在線爲python終端模擬器,我認爲它看起來很酷,所以我繼續前進,並試圖使用它。我注意到我無法使用「cd」命令,我被困在我運行該文件的目錄中。爲什麼?這是怎麼回事?我怎樣才能修改這段代碼使它像一個完美的本地終端一樣運行?我對編程還很陌生,在我的生活中只使用了子進程模塊。請幫忙!Python終端模擬器:不能使用「cd」命令。
import subprocess
import re
while True:
# prevents lots of python error output
try:
s = raw_input('> ')
except:
break
# check if you should exit
if s.strip().lower() == 'exit':
break
# try to run command
try:
cmd = subprocess.Popen(re.split(r'\s+', s), stdout=subprocess.PIPE)
cmd_out = cmd.stdout.read()
# Process output
print cmd_out
except OSError:
print 'Invalid command'
由於您需要使用os.chdir來更改目錄,因此更改目錄對進程沒有任何影響,您爲什麼還要使用re來分割空白以及從raw_input捕獲什麼錯誤? –
如果你想創建一個*真實的*終端模擬器,你需要使用['pty'模塊](https://docs.python.org/3/library/pty.html)。 – icktoofay
也許你的意思是shell而不是終端模擬器?你正在運行終端模擬器,並使得這段代碼更能夠運行諸如'cd'之類的東西,不會讓它更接近終端模擬器。 – pvg