我想爲Ubuntu創建一個python安裝腳本。我試圖通過創建腳本來自動化它,而不必輸入所有的下載和編譯命令。我真正想要的是不打印命令的所有輸出,只輸出錯誤,並將常規輸出打印到文件中。爲什麼subprobess.call()和subprocess.Popen打印時,他們不應該?
我看了this stackoverflow指南和this python文件,但有一些我只是無法弄清楚。每當我將調用和Popen的stdout參數設置爲None時,它仍然會將輸出打印到shell,根據python文檔,它不應該發生。
例如,假設我們在一個包含幾個文件「a」,「b」和「c」的目錄中。根據python文檔,以下命令應該只輸出0.
>>> subprocess.call(["ls", "-a"])
0
但我沒有那樣做。相反,我得到的輸出:
>>> subprocess.call(['ls', '-a'])
. .. a b c
0
我已經嘗試設置標準輸出參數設置爲None,但它仍然是打印輸出,這是不對的。 Subprocess.Popen具有相同的確切行爲。我怎樣才能讓Python不打印輸出?
爲了記錄,我使用python 3.4.0運行Ubuntu 14.04 64位。
編輯:我也嘗試了以上從文件內執行該文件,但我仍然得到不正確的行爲。
我的理解你的問題,你想從運行巨蟒文件中的命令? 然後將其輸出到文件,如果有錯誤,請在命令行上顯示它們? – smushi 2014-10-27 05:48:56
@smushi,是的,這是正確的。 – wheeler 2014-10-27 14:04:17