我试图使用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'>
谢谢:)
答案 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
。