Python 3.x 如何使用python 3.5在Google App Engine中打开文件?
我可以在本地机器上使用下面的行加载我的txt文件Python 3.x 如何使用python 3.5在Google App Engine中打开文件?,python-3.x,google-app-engine,Python 3.x,Google App Engine,我可以在本地机器上使用下面的行加载我的txt文件 lines=open(args['train_file1'],mode='r').read().split('\n') args是包含训练文件目录的dict 现在我将工作的python版本更改为3.5,现在我得到了这个错误。我不知道为什么会出现这个错误,因为该文件存在于该目录中 如果我正确理解了您的问题,那么您正在尝试在App Engine中从云存储读取文件 您不能直接使用open功能,因为云存储中的文件位于云中的存储桶中。由于您使用的是Py
lines=open(args['train_file1'],mode='r').read().split('\n')
args是包含训练文件目录的dict
现在我将工作的python版本更改为3.5,现在我得到了这个错误。我不知道为什么会出现这个错误,因为该文件存在于该目录中
如果我正确理解了您的问题,那么您正在尝试在App Engine中从云存储读取文件 您不能直接使用
open
功能,因为云存储中的文件位于云中的存储桶中。由于您使用的是Python 3.5,因此可以使用来处理位于GCS中的文件
这是一个小示例,用于读取位于应用程序引擎应用程序处理程序中的Bucket中的文件:
from flask import Flask
from google.cloud import storage
app = Flask(__name__)
@app.route('/openFile')
def openFile():
client = storage.Client()
bucket = client.get_bucket('bot_chat-227711')
blob = bucket.get_blob('data/movie_lines.txt')
your_file_contents = blob.download_as_string()
return your_file_contents
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
请注意,您需要在
requirements.txt
文件中添加行google cloud storage
,以便导入和使用此库。由于OP希望对文件进行一些处理,因此最好将其加载到内存中,而不是保存到磁盘。有关将GCS文件加载到内存的方法,请检查以下内容:我相信download\u as\u string
方法已经做到了这一点,因为它以字节字符串的形式返回Blob文件的内容,而不是将其保存到本地文件。我将编辑示例以使其更清晰。
from flask import Flask
from google.cloud import storage
app = Flask(__name__)
@app.route('/openFile')
def openFile():
client = storage.Client()
bucket = client.get_bucket('bot_chat-227711')
blob = bucket.get_blob('data/movie_lines.txt')
your_file_contents = blob.download_as_string()
return your_file_contents
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)