2011-09-20 5 views
0

내가해야할 일은 다음과 같습니다 : Python 스크립트 스폰에서 "ls --colors = always /"Linux 명령을 말하고 출력을 읽으십시오. 이것의 중요한 부분은 나중에 이러한 시퀀스를 HTML로 변환하기 위해 모든 ANSI 이스케이프 시퀀스 (색 등)를 유지하려면 출력이 필요하다는 것입니다. 파이썬 모듈이 그렇게 할 수 있다고 들었지만, 인터넷에서 사용법에 대한 유용한 예를 찾을 수 없었습니다.이 모듈의 문서는 포괄적이지 않습니다. 누군가가이 작업을 수행하는 방법을 안내 할 수 있다면 고맙겠습니다.Python pty module 사용 예제

답변

1
import subprocess as sub 

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

이제 모든 데이터는 ANSI 이스케이프 시퀀스를 포함하여 output이어야합니다.

+0

예, 이것은 'ls'에서 작동하지만 실제로 필요한 Gentoo Linux 'emerge'명령에는 작동하지 않습니다. 'emerge -pvuDN world'를 호출하면 모든 ANSI 이스케이프가 제거되고 일반 텍스트 만 반환됩니다. –

+0

@ Ch00k : 나는 그것을 의심한다. 'ls'에 대한 색상 코드 __와 함께 작동합니까? 나는'emerge'가 대화 형 쉘에서 사용되지 않는다면 색상을 출력하지 않는다고 생각합니다. 이것을 시도해보십시오 :'emerge --colory -pvuDN world'. – orlp

+0

네 말이 맞아. 명시 적으로 '--color y'옵션을 전달하여 non-tty 출력에 색상을 적용해야합니다. 감사! –