Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用python 3.5在Google App Engine中打开文件?_Python 3.x_Google App Engine - Fatal编程技术网

Python 3.x 如何使用python 3.5在Google App Engine中打开文件?

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

我可以在本地机器上使用下面的行加载我的txt文件

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)