2015-10-19 93 views
3

原標題:Python的CMD從顯示運行線Python的CMD從顯示標準錯誤或標準輸出停止終端

我不研究這個問題,以及我平時做的,因爲我不知道正確的術語來描述什麼樣的停止終端我試圖停止。(答案原來是stderr)

我寫了一個小型的python程序,在其本機軟件中運行文件。我使用Linux這樣的命令是

opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner])

其中的贏家是要打開的文件路徑。作爲一個接口,我正在使用CMD軟件包。一切運行良好,並如預期。

我的問題是在終端。這是我不確定該稱之爲什麼的地方。在運行subprocess.call之後,終端將顯示打開文件的過程。它最終取決於它打開的東西大約60行。

我有三個問題:

  1. 怎樣稱呼它的終端線處理文件打開?

  2. 如何阻止這些行顯示出來。我不需要特定的代碼,只是一個方向。我意識到可能沒有辦法從python做到這一點,但我希望有。

  3. 這是一個關於python軟件包的通用問題。 cmd docs表示這對測試線束,管理工具和原型很有用,後者將被包裝在更復雜的界面中。「但它沒有提供其他接口選項。我遇到過cmd的限制嗎?如果是這樣,我應該使用什麼命令行界面包來解決這個問題。 (不幸的是,我不認爲我不夠好與蟒蛇還沒有做出一個完全成熟的GUI)

def start_winner(lst): #starts a file link or a random one from a list winner=random.choice(lst) opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner])

+4

將stdout重定向到dev/null以禁止輸出 –

+0

是否嘗試過subprocess.call([opener,winner],shell = True)? –

+0

@PadraicCunningham我嘗試失敗。我得到一個錯誤AttributeError:Cmd實例沒有__call__方法 (這是我的錯)。我正在嘗試做第一類(cmd.Cmd([[[path]]))):文檔說的。 – lost

回答

0

這個答案是100%@PadraicCunningham。如果他發表了一個答案,那就改爲投票。

的問題的答案:

1)命令輸出爲標準錯誤(可以很容易地得到了標準輸出)。如果您不確定的差異,wikilink

2)我改變了我的啓動功能,

def start_winner(lst): #starts a file link or a random one from a list winner=random.choice(lst) f=open(os.devnull,"w") opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner], stdout=f, stderr=f)

3)不,CMD是沒有問題的,我缺乏瞭解輸出了。

相關問題