2011-11-14 80 views
-1

我正在使用Python捕獲更多的Linux輸出。但是,該文件包含字符:Linux更多:刪除非打印字符

< ---更多--->^M^M

如何使用Python清潔行?或再次使用更多時間來清理?

+2

如果您捕捉程序爲什麼你需要使用'more'輸出?只需捕捉輸出,而不用通過'more'管道輸出。 –

+0

這可能會幫助http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python –

+0

我正在執行的程序是使用'更多'..我不能做任何事情 – user963986

回答

2

這並不保證能夠正常工作,但您應該在子進程的環境中嘗試設置PAGERcat。你不能做到這一點與subprocess.call,但你可以用subprocess.Popen做到這一點:

childenv = os.environ.copy() 
childenv['PAGER'] = 'cat' 

proc = subprocess.Popen(executable="yourprogram", 
         args=["yourprogram", ...], 
         env=childenv, 
         stdout=subprocess.PIPE, 
         ...) 

# proc.stdout *may* now be free of `more` detritus