2011-09-20 1268 views
0

我需要做的事情如下:在Python腳本產生的時候,比如說「ls --colors = always /」Linux命令,並讀取其輸出。其中重要的部分是我需要輸出來保留所有ANSI轉義序列(顏色等),以便稍後將這些序列轉換爲HTML。我聽說Python的pty模塊可以做到這一點,但我找不到在Internet中使用它的有用示例,而且該模塊的文檔不夠全面。如果有人能指導我完成這項任務,我將不勝感激。Python pty模塊使用示例

回答

1
import subprocess as sub 

process = sub.Popen("ls --colors=always /", stdout=sub.PIPE, stderr=sub.PIPE) 
output, errors = process.communicate() 

現在所有你想要的數據應該在output - 包括ANSI轉義序列。

+0

是的,這適用於'ls',但由於某些原因,它不適用於我實際需要的Gentoo Linux'emerge'命令。當我將「emerge -pvuDN world」稱爲「emerge -pvuDN world」時,它會剝離所有ANSI轉義符,並返回純文本。 –

+0

@ Ch00k:我對此表示懷疑。它是否適用於'ls'的顏色代碼__?如果不在交互式shell中使用,我認爲'emerge'不會輸出顏色。試試這個:'emerge --colory -pvuDN world'。 – orlp

+0

你是對的。我需要明確地通過'--color y'選項強制非tty輸出上的顏色。謝謝! –