os.open()抛出IsADirectoryError

时间:2019-01-29 11:23:09

标签: python python-3.x chatbot

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文件夹中有trainnig文本文件夹,当使用os.listdir时,它显示此错误

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

1 个答案:

答案 0 :(得分:0)

os.listdir会返回文件夹中所有内容的名称:文件和子文件夹。 hector的子文件夹之一是french。如错误消息所述,您不能在名为open()的文件夹上使用hector\french(如果可以的话,这意味着什么?)在尝试执行以下操作之前,请将这些行添加到for循环中打开文件:

if os.is_dir(files):
    continue

这样您就不会在文件夹上呼叫open()