2013-08-18 29 views
0

我已經看到很多關於使用popen執行.exe文件的python問題以及提及使用PIPE停止進程輸出的問題。道歉,如果我的術語是不正確的,我很新的python。通過Python靜靜地運行7zip命令行

我這個問題的主要目的是增加標準輸出=管或類似的東西,以防止任何輸出表現,如

"Extracting filename..." This is very bad as some rars are large.

我試圖靜默運行7zip的/隱藏/相當。這樣整個過程就可以在後臺運行,並且不會干擾屏幕上當前的操作。

此時,當前腳本正常工作。

這裏是我的Python代碼: 的Python 2.7

Pythonw.exe用於執行代碼:

pythonw.exe script.py

if ".rar" in input_file: 

    subprocess.Popen("C:\\Program Files (x86)\\7-Zip\\7z e " + input_file + " -o" + output_dest + " -y") 

所有幫助表示讚賞,感謝。

回答

3

管道輸出和錯誤到系統的空文件:

import os 

with open(os.devnull, 'w') as null: 
    subprocess.Popen(['7z', 'e', input_file, '-o', output_dest, '-y'], stdout=null, stderr=null) 
+0

好看,所以這可以只if語句裏面被添加? – goingsideways

+0

@claw:當然,爲什麼不。 – Blender

+0

這是好東西攪拌機感謝。另外,我只使用7z還是應該明確添加路徑? – goingsideways