我正在使用webservice从中获取某个xml文件。它与urllib2工作正常我得到xml作为fileobject。所以我想知道什么是最快的方式来存储在内存中的某个地方甚至不存储只是解析它。
我在该对象上尝试了iterparse,除非我先将它保存在文件中,否则它需要的时间太长,然后iterparse会花费更少的时间。
所以现在我正在使用这个代码首先在本地存储,然后使用我想要的那个文件,我想知道是否有最快的方法,最快的方式存储文件。
url = "webservice"
s = urllib2.urlopen(url)
file = open("export.xml",'wb+')
for line in s:
file.write(line)
由于
答案 0 :(得分:10)
您不需要逐行编写。只需一次性写出整个内容:
>>> import urllib2
>>> url = "webservice"
>>> s = urllib2.urlopen(url)
>>> contents = s.read()
>>> file = open("export.xml", 'w')
>>> file.write(contents)
>>> file.close()
答案 1 :(得分:1)
您可以将其存储在字符串中:
content = s.read()
或StringIO,如果您需要类似文件的界面
content = cStringIO.StringIO()
content.write(s.read)