os.open () выбрасывает IsADirectoryError - PullRequest
0 голосов
/ 29 января 2019
def main():
    chatbot = ChatBot('Bot',
                      storage_adapter ='chatterbot.storage.SQLStorageAdapter',
                      trainer = 'chatterbot.trainers.ListTrainer')
    for files in os.listdir('hector/'):
        convData = open(r'hector/' + files, encoding='latin-1').readlines()
        #convData = open('hector/' + files, 'r').readlines()
        chatbot.set_trainer(ListTrainer)
        chatbot.train(convData)
main()

в этой папке hector есть обучающие текстовые папки, при использовании os.listdir выдает эту ошибку

IsADirectoryError: [Errno 21] Is a directory: 'hector/french'

1 Ответ

0 голосов
/ 29 января 2019

os.listdir возвращает имена всего, что находится в папке: файлы и подпапки.Одна из подпапок hector - это french.Как объясняется в сообщении об ошибке, вы не можете использовать open() в папке с именем hector\french (что бы это значило, если бы вы могли?) Добавить эти строки в цикл for, прежде чем пытаться открыть файл:

if os.is_dir(files):
    continue

чтобы не вызывать open() для папок.

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