目前我從使用Python以下方法運行bash命令:Python的 - 打開新的shell,然後運行命令
os.system(cmd)
不過,我需要在一個新的shell /終端運行命令。有誰知道如何做到這一點?
import subprocess
print subprocess.check_output("command", shell=True)
目前我從使用Python以下方法運行bash命令:Python的 - 打開新的shell,然後運行命令
os.system(cmd)
不過,我需要在一個新的shell /終端運行命令。有誰知道如何做到這一點?
import subprocess
print subprocess.check_output("command", shell=True)
os.system()
是贊成不贊成
import subprocess
cmd_line = "echo Hello!"
p = subprocess.Popen(cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out = p.communicate()[0]
print out
這實際上是做一個新的分離過程或只是一個子殼? bcs子殼可能與文件handes有衝突。即使用os.system()是壞的,因爲這是一個子shell – AimForClarity
我使用下面的方法(這也將stderr重定向到stdout):
感謝, 丹
的Windows 「WshShell」是Google的答案。我的完整步驟:
安裝
1. pip install pywin32-221-cp36-cp36m-win_amd64.whl
2. python.exe pywin32_postinstall.py -install (DOS command line)
運行
3. import win32com.client
4. WshShell = win32com.client.Dispatch("WScript.Shell")
5. WshShell.run("cmd")
WshShell.run()是你所需要的,也有許多不同的方式來運行。隱藏的窗口,新的窗口,全屏幕,最小化,等等。
「新終端」你的意思是你想讓你的窗口管理器創建一個新的終端窗口,其中的命令運行? – geoffspear