我正在使用 python 以编程方式从 Web 服务器下载一个 zip 文件。使用网络浏览器,没问题。我写了这个(部分)脚本;
response = urllib2.urlopen(url, data, 10)
the_page = response.read()
f = open(filename, 'w')
f.write(the_page)
f.close()
请求成功,我得到数据。问题是我正在下载的文件——一个 zip 文件——不起作用;该文件似乎已损坏。它的长度似乎是正确的,在文本编辑器中看起来像是一个 zip 文件的内容。这是下载的标题;
内容长度:9891 内容处置:内容处置:附件;filename="TrunkBackup_20101230.zip" 日期:星期三,2009 年 12 月 30 日 12:22:08 GMT 接受范围:字节
当我检查响应的长度时,它在 9891 处是正确的。我怀疑发生的事情是,当我调用结果时response.read()
,结果是一个字符串,其回车符“有帮助”归一化(比如\r
to \n
)。当我写入文件时,二进制数据略有错误,并且 zip 文件已损坏。
我的问题是(A)我不确定我是否正确,以及(B)如果我是对的,如何保存二进制数据本身?