Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对二进制数据使用URLLIB2.urlopen失败?_Python_Download_Urllib2 - Fatal编程技术网

Python 对二进制数据使用URLLIB2.urlopen失败?

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 接受范围:字节 当我

我正在使用python以编程方式从web服务器下载zip文件。使用网络浏览器就可以了。我写了这个(部分)剧本

请求成功,我得到了数据。问题是我正在下载的文件——一个zip文件——不起作用;该文件似乎已损坏。它似乎是正确的长度排序,并且在文本编辑器中看起来似乎像一个zip文件内容。以下是下载的标题

内容长度:9891 内容配置:内容配置:附件;filename=“TrunkBackup\u 20101230.zip” 日期:2009年12月30日星期三12:22:08 GMT 接受范围:字节

当我检查响应的长度时,它在9891处是正确的。我怀疑当我调用
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')