如何通过python-urllib2通过HTTP正确下载文件?

如何通过python-urllib2通过HTTP正确下载文件?,python,image,file,Python,Image,File,我已经在python上编写了解析器,用于从Internet下载图像: import urllib2 for i in xrange(1,10): r = urllib2.urlopen('http://example.com/'+str(i)+'.gif')) f = open('C:\\' + str(i) + '.gif', 'w+') f.write(r.read()) f.close() 无法打开图像。Windows显示“生成映像时出错”。但我发现接收到的文件的每一行

我已经在python上编写了解析器,用于从Internet下载图像:

import urllib2

for i in xrange(1,10):
  r = urllib2.urlopen('http://example.com/'+str(i)+'.gif'))
  f = open('C:\\' + str(i) + '.gif', 'w+')
  f.write(r.read())
  f.close()

无法打开图像。Windows显示“生成映像时出错”。但我发现接收到的文件的每一行都比原始文件的这一行少1字节,但两者看起来很相似。如何下载正确的文件?

使用windows时,您可能需要将“二进制”标志
b
置于打开状态

f = open(r'C:\\'+str(i)+'.gif','wb')

在Windows上,您需要指定“wb”,而不是“w+”

您可以尝试-它自己处理大部分细节。
因此,您的代码将如下所示:

for i in xrange(1,10):
    urllib.urlretrieve('http://example.com/'+str(i)+'.gif'), 'C:\'+str(i)+'.gif','w+')

在Windows上,您需要指定“wb”,而不是“w+”