2014-05-13 67 views
0

我一直在尋找,但我很困惑。如此之前我已經回答過,但我已經看了,而且我更加困惑。我想要做的就是從python腳本運行可執行文件。shell命令在Python中運行特定的Windows可執行文件

我知道打開notepad.exe(例如),你做了以下事情。

#opens notepad in windows 
import os 
print os.system('notepad.exe') 

,但如果我想在一個目錄下運行一些具體的事情是什麼

我怎樣纔能有效地運行這樣的事情(這顯然是要失敗)

#opens program in windows 
import os 
print os.system('c:\files\program.exe') 

我越讀關於它,我得到更多的困惑。

我一直在閱讀有關sys.executable以及surprocess,但它令我困惑的不僅僅是幫助。有人可以澄清如何做到這一點嗎?一個例子,也許運行一個「program.exe」文件?

+1

拳的事情就是讓你的可執行文件路徑有效。在代碼中使用路徑中的反斜槓是可讀的,但Python中的實際字符串將它用作escacpe字符。所以你要麼使用正斜槓(我推薦它甚至是Windows),要麼使用「\\」而不是「\」 –

+0

或「r」文字標誌...... –

+0

它是子進程*,順便說一句。這可能會清除*一些*的混淆 – bernie

回答

3

您可以使用那樣的os.system。請注意,字符串需要正確轉義,所以您可能需要轉義這些反斜槓字符。或者,你也可以使用原始字符串,使其工作:

os.system(r'c:\files\program.exe') 
+0

的一部分,儘管實話蟒蛇始終了解linux風格的路徑,我會建議......但是,meh +1 –

+0

@JoranBeasley我個人更喜歡使用系統的本地路徑分隔符。這就是'os.path.join'使用的原因以及爲什麼'os.sep'存在。當你使用它時,你也不會混淆分隔符,例如,作爲不支持任何分隔符的程序的參數。 – poke

+0

這樣做的做法其實很好,謝謝! – jabbyjim