如何从django的NamedTemporaryFile写的urllib2.read()获取头文件?

时间:2013-04-21 10:21:30

标签: python django urllib2

我试图使用django的NamedTemporaryFile来存储来自urllib的instace。这是一些代码。

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'>

谢谢:)

1 个答案:

答案 0 :(得分:0)

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

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

documentation中所述:

  

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

urllib2.urlopen返回类似于type(a)instance的对象的文件,但当您执行a = a.read()时,实际上是在获取网址内容并且您正在覆盖在同一个变量上,现在type(a)str