我正在尝试在GAE中打开使用urlfetch()
检索的文件。
这是我到目前为止所拥有的:
from google.appengine.api import urlfetch
result = urlfetch.fetch('http://example.com/test.txt')
data = result.content
## f = open(...) <- what goes in here?
这可能看起来很奇怪,但BlobStore中有一个非常相似的函数可以将data
写入blob文件:
f = files.blobstore.create(mime_type='txt', _blobinfo_uploaded_filename='test')
with files.open(f, 'a') as data:
data.write(result.content)
如何将data
写入任意文件对象?
编辑:应该更清楚;我正在尝试urlfetch 任何文件并在文件对象中打开result.content
。所以它可能是.doc而不是.txt
答案 0 :(得分:3)
您可以使用StringIO模块使用字符串的内容模拟文件对象。
from google.appengine.api import urlfetch
from StringIO import StringIO
result = urlfetch.fetch('http://example.com/test.txt')
f = StringIO(result.content)
然后你可以从f对象中读取()或使用其他文件对象方法,如seek(),readline()等。
答案 1 :(得分:2)
您不必打开文件。您已收到data = result.content中的文本数据。