f = urllib2.urlopen(file_location)
data = StringIO(f.read())
print data.getvalue()
我甚至做到了:
f = urllib2.urlopen(file_location)
print f.read()
因为我只是想看到第一个块,结果是一样的 - 我错过了.rar文件的第一行。
如果我使用网络浏览器下载同一个文件,一切都很好,它没有损坏。
有谁能解释一下这到底是怎么回事?它与文件类型有什么关系。
答案 0 :(得分:3)
尝试确定二进制数据字符串的内容时,请使用repr()
或hex()
。例如,
>>> print repr(data)
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>> print [hex(ord(c)) for c in data]
['0x0', '0x1', '0x2', '0x3', '0x4', '0x5', '0x6', '0x7', '0x8', '0x9']
>>>
答案 1 :(得分:2)
数据是否可能包含“回车”字符(“\ r”),以便在您尝试显示时,第一个块会被后续数据覆盖?这可以解释为什么你没有看到输出中的第一个块,而不是为什么你以后无法解码它。