2012-11-02 7 views
1

이 질문은 죄송합니다. 필자는이 문제가 반복되는 주제라는 것을 알고 있지만 실제로 문제를 해결할 능력이 없다고 설명하고 있습니다. 실행 의 출력을 그대로으로 제출하십시오. 내가 (혼란 죄송합니다)이 같은 출력을 의미 :콘솔 출력을 파이썬 파일로 작성하기


/home/travis/opt/bcbb/nextgen/tests/data/automated/../100326_FC6107FAAXX 
--2012-11-01 15:34:10-- http://chapmanb.s3.amazonaws.com/100326_FC6107FAAXX.tar.gz 
Resolving chapmanb.s3.amazonaws.com (chapmanb.s3.amazonaws.com)... 205.251.242.133 
Connecting to chapmanb.s3.amazonaws.com (chapmanb.s3.amazonaws.com)|205.251.242.133|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 7014592 (6.7M) [application/x-gzip] 
Saving to: `100326_FC6107FAAXX.tar.gz' 

100%[======================================>] 7,014,592 2.46M/s in 2.7s  

2012-11-01 15:34:13 (2.46 MB/s) - `100326_FC6107FAAXX.tar.gz' saved [7014592/7014592] 
: 당신이 볼 수있는

.251.242.133|:80... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 2371567 (2.3M) [application/x-gzip]\r\nSaving to: `110907_ERP000591.tar.gz\'\r\n\r\n\r 0% [          ] 0   --.-K/s    \r 0% [          ] 23,003  104K/s    \r 3% [>          ] 82,863  184K/s    \r 8% [==>         ] 192,363  282K/s    \r15% [=====>         ] 371,943  411K/s    \r26% [=========>        ] 634,175  563K/s    \r39% [==============>      ] 925,283  680K/s    \r52% [===================>     ] 1,250,295 790K/s    \r63% [=======================>    ] 1,497,035 830K/s    \r73% [===========================>   ] 1,732,663 861K/s    \r81% [==============================>  ] 1,937,063 867K/s    \r88% [=================================>  ] 2,099,123 855K/s    \r95% [====================================> ] 2,268,483 847K/s    \r100%[======================================>] 2,371,567 849K/s in 2.7s \r\n\r\n2012-11-01 15:34:10 (849 KB/s) - `110907_ERP000591.tar.gz\' saved [2371567/2371567]\r\n\r\n110907_ERP000591/\r\n110907_ERP000591/1_110907_ERP000591_2_fastq.txt\r\n110907_ERP000591/1_110907_ERP000591_1_fastq.txt\r\n/home/travis/opt/bcbb/nextgen/tests/data/automated/../100326_FC6107FAAXX\r\n--2012-11-01 15:34:10-- http://chapmanb.s3.amazonaws.com/100326_FC6107FAAXX.tar.gz\r\nResolving chapmanb.s3.amazonaws.com (chapmanb.s3.amazonaws.com)... 205.251.242.133\r\nConnecting to chapmanb.s3.amazonaws.com (chapmanb.s3.amazonaws.com)|205.251.242.133|:80... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 7014592 (6.7M) [application/x-gzip]\r\nSaving to: `100326_FC6107FAAXX.tar.gz\'\r\n\r\n\r 0% [          ] 0   --.-K/s    \r 0% [          ] 17,163  77.9K/s    \r 0% [          ] 64,775  147K/s    \r 2% [          ] 174,843  263K/s    \r 5% [=>          ] 399,683  456K/s    \r12% [===>         ] 866,883  790K/s    \r25% [========>        ] 1,798,363 1.33M/s    \r45% [================>      ] 3,178,955 1.90M/s    \r65% [========================>    ] 4,592,803 2.41M/s    \r65% [========================>    ] 4,629,303 2.17M/s    \r67% [=========================>    ] 4,761,595 2.02M/s    \r74% [============================>   ] 5,245,423 2.03M/s    \r83% [===============================>  ] 5,862,435 2.08M/s    \r100%[======================================>] 7,014,592 2.46M/s in 2.7s \r\n\r\n2012-11-01 15:34:13 (2.46 MB/s) - 

그래서, 내가 터미널에 다음과 같이 표시됩니다 이상하게 형식의 출력을 가지고

훨씬 더 좋네요 ...이 형식으로 파일에 출력을 쓰고 싶습니다. \ r \ n 또는 이와 비슷한 것을 제거 할 수 있습니다.이 방법은 각 단계마다 진행률이 한 줄씩 표시되기 때문에 다운로드. 난 그냥 최종 출력 파일을 작성하고 싶습니다.

어떤 도움이 필요합니까?

편집 :

미안 해요, 난 명확 했어야 : 그것은, 아래 JSON 파일의 구문 분석의 결과를 주석으로, 명령의 결과 아니지만. 다음과 같이 출력을 재현 할 수 있습니다.


import urllib 
import json 

string_to_write = json.loads(urllib.urlopen('https://travis-ci.org/jobs/3019024.json').read())['log'] 
+0

정확히이 출력을 이끌어 낸 명령은 무엇입니까? –

+0

기본적으로 그대로 작동해야합니다. 의미, 파이썬에서's = 'foo \ n \ rbar'' 문자열을 얻었고 그것을'open ('outfile.txt, 'w'). write (s) '파일에 쓰면, 'cat'ed와 같이 줄 끝을 포함하고 올바르게 렌더링되어야합니다. –

+0

Windows 사용자 인 경우 파일을 쓸 때 "바이너리 모드"와 "텍스트 모드"를 구분할 수 있습니다. 따라서 "wb"또는 "w"모드를 사용해야 할 수도 있습니다. Python [docs 파일 읽기 및 쓰기] (http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files)에있는 주석을 참조하십시오. –

답변

1

는 :

re.sub(r"(?m)^.*\r(?!$)", "", text) 

(?m) 플래그 ^$ 오히려 전체 텍스트보다, 각 라인의 시작과 끝을 일치하도록이, 여러 줄 정규식을 나타냅니다.

그래서, 우리는 라인 ^의 시작부터 모든 .* 일치와 그 캐리지 리턴 즉시 라인 (?!$)의 말에 따라되지 않는 한, 캐리지 리턴 \r을 포함한 - 텍스트가 CRLF가 포함되어있는 경우가있을 것 같은 linebreaks. 그리고 빈 문자열에 일치를 바꿉니다. >

# t is your text 
''.join([i for i in t.split('\r') if i.startswith('\n') or i.startswith('100%')]) 

솔루션이 까다 롭습니다하지만 아마 당신을 위해 일하는 수 있다고 생각 - 당신은 그냥 터미널에 숨겨져있는 것을 제거하려는 경우

+0

이 하나의 일했습니다! 고마워요! – guillemch

+0

'얻었습니다'\ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n2012 -11-01 15:34:13 (2.46 MB/s) '정말 좋은 결과입니까? – Liso

0

* NIX 시스템처럼 보입니다. 이 출력은 명령 행에서 (정말 python myscript.py 될 수있는) progn를 실행하여 생성하는 경우, 당신은 그냥 쉽게 할 수있다 :

progn > logfile 

이 방법을 progn의 출력은 모든 문자를 제거하지 않고 logfile에 저장됩니다 . 이 작동한다고

0

당신은 이것을 시도 할 수 있었다 (!).

관련 문제