Python 对二进制数据使用URLLIB2.urlopen失败?
我正在使用python以编程方式从web服务器下载zip文件。使用网络浏览器就可以了。我写了这个(部分)剧本 请求成功,我得到了数据。问题是我正在下载的文件——一个zip文件——不起作用;该文件似乎已损坏。它似乎是正确的长度排序,并且在文本编辑器中看起来似乎像一个zip文件内容。以下是下载的标题 内容长度:9891 内容配置:内容配置:附件;filename=“TrunkBackup\u 20101230.zip” 日期:2009年12月30日星期三12:22:08 GMT 接受范围:字节 当我检查响应的长度时,它在9891处是正确的。我怀疑当我调用Python 对二进制数据使用URLLIB2.urlopen失败?,python,download,urllib2,Python,Download,Urllib2,我正在使用python以编程方式从web服务器下载zip文件。使用网络浏览器就可以了。我写了这个(部分)剧本 请求成功,我得到了数据。问题是我正在下载的文件——一个zip文件——不起作用;该文件似乎已损坏。它似乎是正确的长度排序,并且在文本编辑器中看起来似乎像一个zip文件内容。以下是下载的标题 内容长度:9891 内容配置:内容配置:附件;filename=“TrunkBackup\u 20101230.zip” 日期:2009年12月30日星期三12:22:08 GMT 接受范围:字节 当我
response.read()
时,结果是一个字符串,其中的回车“helply”被规范化(比如,\r
到\n
)。当我编写文件时,二进制数据有点错误,zip文件已损坏
我的问题是:(A)我不确定我是否正确,(B)如果我正确,如何保存二进制数据本身?尝试以二进制模式打开文件:
f = open(filename, 'wb')
您可以使用下载原始二进制文件。如果任何人在写入模式设置为“wb”的情况下遇到相同错误,请确保在尝试使用该文件之前调用“f.flush()”或“f.close()”,否则可能无法完全写入该文件。以二进制模式(
打开)打开文件时,该操作是否有效(文件名,'wb')
)?我的urlretrieve出现了问题——我的应用程序刚刚停止。不知道为什么。这很奇怪……我认为urlretrieve(url,targetpath)可以很好地处理文件(可能比“url->string->file”方式快得多)。也许你可以给我看看你的代码。
f = open(filename, 'wb')