【问题标题】:How to download files over HTTP via python-urllib2 correctly?如何正确通过 python-urllib2 通过 HTTP 下载文件?
【发布时间】:2011-09-26 23:37:05
【问题描述】:

我在 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 上,您需要指定 'wb',而不是 'w+'

标签: python image file


【解决方案1】:

使用 Windows 时,您可能需要将“二进制”标志 b 置于 open...

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你可以试试urllib.urlretrieve - 它自己处理大部分细节。
      所以您的代码将如下所示:

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

      【讨论】:

        猜你喜欢
        • 2010-09-06
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        相关资源
        最近更新 更多