1. 程式人生 > >Python在通過os.system執行含有空格路徑的命令時報錯問題的解決方案

Python在通過os.system執行含有空格路徑的命令時報錯問題的解決方案

    今天寫了一個用來對VMware Workstation虛擬機器通過socket進行遠端操作的Python程式,想用Python來呼叫C盤下的 “C:\Program Files\VMware\VMware Tools\rpctool.exe”這個檔案。
     但是程式會報出’C:\Program’ is not recognized as an internal or external command, operable program or batch file.這樣的錯誤,也就是說其在空格處截斷了,導致了命令無法順利的執行,加雙引號以後問題消失,但是新的問題又出來了,即命令只能有一個引數,多於一個引數也執行不了。
     在查閱相關資料後,可用subprocess.Popen()來代替os.system()這個方法

import subprocess
cmd='"C:\Program Files\VMware\VMware Tools\rpctool.exe" "-h"'
ps = subprocess.Popen(cmd); # 執行cmd命令
ps.wait();#讓程式阻塞

這樣就完美解決了空格問題和引數只能有一個的問題