欧凯这真是奇怪。我有这个剧本基本上下载一堆文件,实现并提取它们。通常这些文件是.zip文件。今天我坐了下来,并决定把它与RAR文件工作,我卡住了。起初我以为这个问题是在我的unrar代码,但它不存在。所以我所做的:

f = urllib2.urlopen(file_location)
data = StringIO(f.read())
print data.getvalue()

赫克我甚至做的:

f = urllib2.urlopen(file_location)
print f.read()

因为我只是想看看第一个块,结果是一样的 - 我错过.rar文件的第一行

如果我使用Web浏览器来下载同样的文件,一切都很好,这不是腐败。

任何人都可以请解释一下我这到底是怎么回事?它有什么与文件类型做。

有帮助吗?

解决方案

数据是否可能包含一个“回车”字符(“\ R”),这样,当尝试将其显示在第一组块与随后的数据覆盖?这可以解释为什么你没有看到在输出第一大块,但不是你为什么不能够给它以后进行解码。

其他提示

当试图确定二进制数据串的内容,使用 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']
>>>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top