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'
答案 0 :(得分:0)
os.listdir
会返回文件夹中所有内容的名称:文件和子文件夹。 hector
的子文件夹之一是french
。如错误消息所述,您不能在名为open()
的文件夹上使用hector\french
(如果可以的话,这意味着什么?)在尝试执行以下操作之前,请将这些行添加到for
循环中打开文件:
if os.is_dir(files):
continue
这样您就不会在文件夹上呼叫open()
。