我使用python以编程方式从Web服务器下载zip文件。使用网络浏览器,没问题。我写了这个(部分)脚本;对二进制数据使用Urlllib2.urlopen失败?
response = urllib2.urlopen(url, data, 10)
the_page = response.read()
f = open(filename, 'w')
f.write(the_page)
f.close()
请求成功,我得到数据。问题是我正在下载的文件 - 一个zip文件 - 不起作用;该文件似乎已损坏。它似乎是正确的长度,并且在文本编辑器中看起来看起来像一个zip文件内容。这里是下载的标题;
Content-Length:9891 Content-Disposition:Content-Disposition:attachment;文件名=“TrunkBackup_201.zip” 日期:星期三,2009年12月30日12:22:08 GMT 接受-范围:字节
当我检查响应的长度,它是正确的,在9891.我怀疑发生了什么当我拨打response.read()
时,结果是一个字符串,其回车符'有用'归一化(例如,\r
至\n
)。当我编写文件时,二进制数据有点不对,并且zip文件已损坏。我的问题是(A)我不确定我是否正确,(B)如果我是正确的,如何保存二进制数据本身?
当你以二进制模式打开文件('open(filename,'wb')')时它工作吗? – 2009-12-30 12:29:41