我試圖用下面這段代碼...我無法使用子流程在臨時文件夾中運行文件嗎?
**subprocess.Popen('%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log').communicate()**
,但我得到一個錯誤信息。 有沒有人可以幫助這個?
我試圖用下面這段代碼...我無法使用子流程在臨時文件夾中運行文件嗎?
**subprocess.Popen('%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log').communicate()**
,但我得到一個錯誤信息。 有沒有人可以幫助這個?
由於路徑中存在環境變量,因此您可以添加shell=True
以強制運行批處理過程,以評估env。變量:
subprocess.Popen('"%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log"',shell=True).communicate()
請注意保護與報價,因爲有空格。你也可以去掉引號,如果你傳遞一個包含一個元素Popen
,這是清潔的列表:
subprocess.Popen(['%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log'],shell=True).communicate()
交替,如果你只是想激活默認編輯爲您的日誌文件,還有一個更簡單的方法(不阻止執行腳本,所以它的略有不同):
p = os.path.join(os.getenv('USERPROFILE'),r"AppData\Local\Temp\AdobeARM - Copy.log")
os.startfile(p)
也許可以更簡單,因爲那可能是你想達到的臨時目錄:
p = os.path.join(os.getenv('TEMP'),r"AdobeARM - Copy.log")
os.startfile(p)
你能編輯你的問題來顯示錯誤信息嗎?我懷疑這是'USERPROFILE'env變量的非解釋問題,但如果你有這些信息,爲什麼不提供它? –
我們必須猜測你得到了什麼錯誤信息嗎? 「一條錯誤信息」對我們沒有任何幫助。 – cdarke
@cdarke:幸運的是,我知道這個問題,但仍然很煩人......沒有幫助未來讀者的網站上的問題的質量。想想他們! –