Python 在GAE中从urlfetch打开文件

Python 在GAE中从urlfetch打开文件,python,google-app-engine,blobstore,Python,Google App Engine,Blobstore,我正试图在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? 如何将数据写入任意文件对象 编辑:应该更清楚;我正在尝试urlfetch任何文件,并在

我正试图在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?
如何将
数据
写入任意文件对象


编辑:应该更清楚;我正在尝试urlfetch任何文件,并在文件对象中打开
result.content
。所以它可能是一个.doc而不是一个.txt,你不必打开一个文件。您已收到data=result.content中的txt数据。

您无需打开文件。您已收到data=result.content中的txt数据。

您可以使用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()等。

您可以使用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()等。

是的,但我需要将文本数据存储在文件对象中。而且,如果文件是.doc,那么result.content中的数据将不仅仅是纯文本。什么文件对象?您可以将内容(文件数据=一个blob)添加到blobstore并为其指定相应的mimetype。通过这种方式,我下载图像或pdf并将它们保存在blobstore中。您的fetch接收到一块数据。我指的是从
f=open('text.txt')
创建的文件对象。听起来很愚蠢,但我确实需要这样,因为我没有把数据放在BlobStore中。(如果您感到好奇,我将
f
作为gdata.MediaSource对象的参数传入)我想我理解您的意思。但对于读取数据(blob),您不必打开文件,因为您已收到数据。要保存它,必须先创建一个文件。在GoogleDriveAPI中查找。结论:您的问题是:如何在Google Drive中保存获取的数据。是的!哈哈,不过我把范围缩小到了这个具体的问题步骤。实际上,我刚刚编辑了gdata库,我以前使用它来处理文件对象需求,现在它只处理
result.content
。然而,我刚刚找到了一个关于这一点的答案,它可能会帮助一些未来的用户。谢谢您的帮助:)是的,但我需要将文本数据存储在文件对象中。而且,如果文件是.doc,那么result.content中的数据将不仅仅是纯文本。什么文件对象?您可以将内容(文件数据=一个blob)添加到blobstore并为其指定相应的mimetype。通过这种方式,我下载图像或pdf并将它们保存在blobstore中。您的fetch接收到一块数据。我指的是从
f=open('text.txt')
创建的文件对象。听起来很愚蠢,但我确实需要这样,因为我没有把数据放在BlobStore中。(如果您感到好奇,我将
f
作为gdata.MediaSource对象的参数传入)我想我理解您的意思。但对于读取数据(blob),您不必打开文件,因为您已收到数据。要保存它,必须先创建一个文件。在GoogleDriveAPI中查找。结论:您的问题是:如何在Google Drive中保存获取的数据。是的!哈哈,不过我把范围缩小到了这个具体的问题步骤。实际上,我刚刚编辑了gdata库,我以前使用它来处理文件对象需求,现在它只处理
result.content
。然而,我刚刚找到了一个关于这一点的答案,它可能会帮助一些未来的用户。谢谢你的帮助:)