我知道這個問題已經被詢問了很多次,我想我已經閱讀了他們中的每一個,但我無法找到我的問題的答案。我試圖在Windows XP機器上運行可執行文件。可執行文件位於一系列文件夾中。使用子進程運行帶有標誌的可執行文件
C:\folder\program.exe
當我運行程序時,我需要包括一個標誌和路徑。
program -f\path\to\file.txt
如果我瀏覽到該文件夾並運行上述使用它工作正常CLI命令。我想從我的python腳本中運行這個程序。
我已經試過Subprocess.popen
和subprocess.call
,我似乎沒有得到任何錯誤,但程序也沒有執行。
有沒有人有什麼我可以嘗試的建議?謝謝
def Run(Path='\data\file.txt'):
import subprocess, time
cmd = '-f'+Path
subprocess.Popen(["program", cmd, "C:\folder\\"])
def Run(Path='\data\file.txt'):
import subprocess, time
cmd = '-f'+Path
subprocess.call(["C:\folder\program.exe", cmd])
您的CLI命令是你用'subprocess.Popen'做什麼不同。你在popen中的命令有額外的部分。它將是「program -f \ data \ file.txt C:\ folder \\」,而您的cli命令只是前兩位。 – mavili
您可能對[sh](http://amoffat.github.io/sh/)模塊感興趣 - 比原始子流程更易於使用。 –
shell = True 例如:subprocess.call([「C:\ folder \ program.exe」,cmd],shell = True) 使用中間shell意味着變量,glob模式和其他特殊shell特徵命令字符串在命令運行前被處理。 http://pymotw.com/2/subprocess/index.html#module-subprocess – Prasath