1

我正在尝试在 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 中有一个非常相似的函数可以写入datablobfile:

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

4

2 回答 2

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() 等。

于 2012-10-02T03:20:33.520 回答
2

Yoy不必打开文件。您已收到 data = result.content 中的 txt 数据。

于 2012-10-02T00:40:30.057 回答