1

我试图使用 django 的 NamedTemporaryFile 来存储来自 urllib 的实例。这里有一些代码。

import urllib2
import types

from django.core.files.temp import NamedTemporaryFile    
img_temp = NamedTemporaryFile()
img_temp = urllib2.urlopen('http://www.python.org/images/python-logo.gif').read()
img_temp.write(img_temp)

如何从 img_temp 获取标题?img_temp 变量是一个字符串。这两个代码有什么区别?为什么他们返回不同的类型?

a = urllib2.urlopen('http://www.python.org/images/python-logo.gif')
a.read()
b = urllib2.urlopen('http://www.python.org/images/python-logo.gif').read()

print 'a %s'% type(a)
print 'b %s'% type(b)

结果:

a <type 'instance'>
b <type 'str'>

谢谢 :)

4

1 回答 1

0

要获取标题信息,您可以使用.info

a = urllib2.urlopen('http://www.python.org/images/python-logo.gif')
print a.info()

文档中所述:

info() — 以 mimetools.Message 实例的形式返回页面的元信息,例如标题(请参阅 HTTP 标题快速参考)

urllib2.urlopen返回文件之类的对象,这就是为什么type(a)instance但是当您这样做a = a.read()时,实际上是在获取 url 的内容,并且您正在覆盖同一个变量,这就是为什么 now type(a)is str

于 2013-04-21T10:28:22.237 回答