2012-03-14 96 views
2

我正在使用web服務從它獲取某個xml文件。它與urllib2正常工作我得到的XML作爲fileobject。所以我想知道什麼是最快的方式存儲在內存中的某個地方或甚至不存儲只是解析它。從webservice保存xml的Python

我試過iterparse對象,它需要很長的時間,除非我先將它保存在文件中,然後iterparse花費的時間更少。

因此,現在我使用此代碼先將其存儲在本地,然後使用該文件執行我想要的操作,並且我想知道是否有最快的方式來存儲文件。

url = "webservice" 
s = urllib2.urlopen(url) 

file = open("export.xml",'wb+') 
for line in s: 
    file.write(line) 

感謝

回答

8

你不需要編寫一行接一行。只寫了整個事情一氣呵成:

>>> import urllib2 
>>> url = "webservice" 
>>> s = urllib2.urlopen(url) 
>>> contents = s.read() 
>>> file = open("export.xml", 'w') 
>>> file.write(contents) 
>>> file.close() 
+0

是的,我可以,但速度實際上是相同的,而且我在這種情況下的速度爲 – iblazevic 2012-03-14 08:46:56

+0

雖然技術可能適中,但這裏的速度限制可能是基於網絡和磁盤的。 – beerbajay 2012-03-14 09:00:38

1

您可以將其存儲在一個字符串:

content = s.read() 

或StringIO的,如果你需要類似文件的接口

content = cStringIO.StringIO() 
content.write(s.read)