2017-01-29 114 views
-2

我試圖利用類似的問題得到下面的代碼打印到終端在Python怪輸出:充分利用POPEN

cmd = 'test' 
output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0] 
print(output) 

但是這樣做給我的輸出:

b'' 

如何修復我的代碼以正確輸出到終端?

+0

究竟什麼是你的問題? – DyZ

+0

如何解決我的代碼正確輸出到終端?所有其他問題/解決方案似乎表明這是正確的方式。 – arcade16

+0

輸出什麼,你期待? –

回答

6

從手冊頁:

test - check file types and compare values 

一個程序來測試文件。並且當你在命令行上運行它時,它只是簡單地打印任何東西(因爲這個命令在提供給它的文件名上起作用;而且因爲你沒有傳遞任何參數,所以沒什麼可說的)

而且輸出有告訴你(其中b'是指:字節的八位字節的空數組;參見here用於對詳細信息)。

因此,這裏真正的答案:你開始想知道,當你的Python中調用它的工具做什麼之前...直接在shell中運行它。

+0

我在那裏提供的鏈接......解釋了這個b'部分。 – GhostCat

+3

所以你不知道你在做什麼,並期望其他人向你解釋?你的**自己的**代碼正在使用子進程來啓動一個*子進程*來運行**你傳遞給它的命令。該命令被命名爲test。假設你使用的是Linux系統,我向你解釋了「測試」的含義。 – GhostCat