0

在python中我使用os.startfile命令來啓動一個windows可執行文件,它在自己的文件夾中執行特定的東西,python代碼從另一個文件夾運行,所以當我啓動文件,它從python腳本的工作目錄開始,但它必須從它自己的目錄開始。我試過用os.chdir(path)來改變工作目錄,但是失敗了,這個文件仍然沒有運行在它自己的文件夾中。我想也許有一條命令就像快捷鍵的「開始」行一樣。我搜索了每一個,但沒有成功。我唯一想到的解決方案是創建一個快捷方式並添加「開始」行,然後啓動快捷方式,但這是非常不切實際的。Python更改用startfile打開的exe的工作目錄

+1

爲什麼使用'startfile'來運行一個程序,而不是說'system'命令? –

+0

我會遇到與os.system – Saulpila

回答

4

請勿使用os.startfile作爲初學者。使用subprocess,然後可以使用cwd參數Popen

import subprocess 
process = subprocess.Popen('command', cwd = 'directory') 

如果你真的想用ShellExecute,那麼最好的辦法,是跳過os.startfile,並直接與​​調用它(或者看它是否在某處pywin32)。

+0

相同的問題,它仍然從python的目錄執行它!感謝您的幫助,但它沒有奏效......你試過了嗎?你是否100%肯定這應該工作?因爲它沒有 – Saulpila

+0

@Saulpila:你是如何檢查它的?你使用的是哪個Python版本? –

+0

我正在使用python 2.7.2。我改變了代碼,並運行它,我知道當可執行文件沒有運行到位時,因爲在創建它之前,它創建了一個文件...並且該文件正在python腳本的文件夾 – Saulpila