Получение исключения при открытии файлов в колбе - PullRequest
0 голосов
/ 22 ноября 2018

Я получаю сообщение об ошибке при отправке запроса почтальона на API для чтения файлов из каталога.

    cwd = os.getcwd()
    print(cwd)
    cwd = cwd.replace('\\','/')
    print(cwd)
    path = cwd + "/training_data/"
    print(path)
    try:

        for files in os.listdir(path):
            data = open(path + files,'r').readlines()
            bot.train(data)

    except Exception as e:
        return jsonify("Error while opening file",path,cwd,os.listdir(path))

Я получаю следующее исключение:

[
"Error while opening file",
"C:/Users/RakeshS/Desktop/app/training_data/",
"C:/Users/RakeshS/Desktop/app",
[
    "code.txt",
    "deputation1.txt",
    "football.txt",
    "Greeting.txt",
    "internetaccess.txt",
    "intravels.txt",
    "sentiment.txt",
    "system.txt"
]]

Почему он не может открыть файл и прочитать данные, когда я получаю весь список файлов внутри каталога?

1 Ответ

0 голосов
/ 22 ноября 2018

Вот полное решение вашей проблемы:

from flask import Flask, jsonify
import os
app = Flask(__name__)


@app.route('/')
def hello_world():
    cwd = os.getcwd()
    path = os.path.join(os.getcwd(), 'training_data')
    try:
        for file in os.listdir(path):
            path_and_file = os.path.join(path, file)
            data = open(path_and_file, 'r').readlines()
            print(data)  # To print everything from a file
        return jsonify("Files successfully opened", path, cwd, os.listdir(path))

    except:
        return jsonify("There was error opening files", path, cwd, os.listdir(path))


if __name__ == '__main__':
    app.run()

Вот вывод:

Response of postman

Объяснение:

В моем примере я поместил его на / маршрут, но вы можете поместить его в любое место.

Всякий раз, когда я иду на / маршрут, я получаюОтвет JSON.os.getcwd() возвращает мне текущий каталог, но я соединяю два пути, используя функцию os.path.join().Из документации Python:

Интеллектуальное объединение одного или нескольких компонентов пути.

Подробнее о документации Python можно прочитать больше.Далее, поскольку я получаю путь к training_data, мне нужно снова присоединиться к пути к training_data и файлу.И я возвращаю данные JSON.Если что-то пойдет не так, вы можете напечатать traceback в предложении except, а также вернуть данные, чтобы колба не выдавала ошибку для возврата ответа пользователю.

PS

training_data папка находится на том же уровне, что и ваша колба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...