【发布时间】:2012-11-02 14:20:53
【问题描述】:
对不起这个问题,我知道这是一个反复出现的话题,但我无法解决我的问题,事实上,这很容易描述:我想将执行的输出写入文件 原样。我的意思是,我有这样的输出(对不起,一团糟):
.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) -
所以,如您所见,我有一个格式奇怪的输出,在终端中显示如下:
/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]
好多了...我想用这种形式将输出写入文件,所以我不能只去掉 \r\n 或类似的东西,因为这种方式会在每一步出现一行下载。我只想写一个带有最终输出的文件。
有什么帮助吗?
编辑:
对不起,我应该更清楚一点:这不是命令的结果,而是如下所述的解析 json 文件的结果。您可以重现输出:
import urllib
import json
string_to_write = json.loads(urllib.urlopen('https://travis-ci.org/jobs/3019024.json').read())['log']
【问题讨论】:
-
导致此输出的命令到底是什么?
-
这应该基本上可以正常工作。意思是,如果你在 Python 中得到一个字符串
s = 'foo\n\rbar',并将它写到一个带有open('outfile.txt, 'w').write(s)的文件中,那么该文件应该包含这些行尾并在cated 时正确呈现。 -
虽然如果你在 Windows 上,在写入文件时,“二进制模式”和“文本模式”之间有一个脑残的区别。所以你可能需要使用
'wb'或'w'模式,不确定。请参阅 Python docs about reading and writing files 中的 cmets。 -
对不起,其实不是命令本身,是解析[travis-ci api](www.travis-ci.org)返回的结果,具体来说就是字段['matrix' ][0]['id'] 来自this url返回的json
-
这看起来像
wget输出,假定为 TTY。也许您应该改用--progress=dot开关?
标签: python regex formatting output