简体   繁体   中英

File directory not found

I have a piece of code but when I run the code it comes up with a error in which I do not understand neither does my sister who is apparently good at code... My code is:

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os

bot = ChatBot('Bot')
bot.set_trainer(ListTrainer)

for files in os.listdir(r'C:\Users\vanos\chatterbot-corpus-
1.2.0\chatterbot_corpus\data\english'):
    data = open(r'C:\Users\vanos\chatterbot-corpus-
1.2.0\chatterbot_corpus\data\english' + files ,'r').readlines()
    bot.train(data)

while True:
    message = input('You:')
    if message.strip() != 'Bye':
        reply = bot.get_responce(message)
        print('ChatBot :',reply)
    if message.strip() == 'Bye':
        print('ChatBot : Bye')
        break

My error in cmd states:

C:\Users\vanos\Desktop>ai.py
Traceback (most recent call last):
File "C:\Users\vanos\Desktop\ai.py", line 9, in <module>
data = open(r'C:\Users\vanos\chatterbot-corpus-
1.2.0\chatterbot_corpus\data\english' + files ,'r').readlines()
FileNotFoundError: [Errno 2] No such file or directory:
'C:\\Users\\vanos\\chatterbot-corpus-
1.2.0\\chatterbot_corpus\\data\\englishai.yml'

My error in idle states:

Traceback (most recent call last):
File "C:/Users/vanos/Desktop/ai.py", line 9, in <module>
data = open(r'C:\Users\vanos\chatterbot-corpus-
1.2.0\chatterbot_corpus\data\english' + files ,'r').readlines()
FileNotFoundError: [Errno 2] No such file or directory:
'C:\\Users\\vanos\\chatterbot-corpus-
1.2.0\\chatterbot_corpus\\data\\englishai.yml'

I was just trying to make a AI chatbox.

I just want to point out that the file directory is correct. I have triple checked it and I have copy and pasted the directory like 5 times.

My expected results are for the List Trainer to load and to have a conversation with the AI. However I get those errors and the List Trainer will not load instead that error message comes up every time.

EDIT/////

My current code:

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os

bot = ChatBot('Bot')
bot.set_trainer(ListTrainer)

for files in os.listdir(r'C:\Users\vanos\chatterbot-corpus- 
1.2.0\chatterbot_corpus\data\english'):
data = open(os.path.join(r'C:\Users\vanos\chatterbot-corpus- 
1.2.0\chatterbot_corpus\data\english' , files) ,'r').readlines()
bot.train(data)

while True:
    message = input('You:')
if message.strip() != 'Bye':
    reply = bot.get_responce(message)
    print('ChatBot :',reply)
if message.strip() == 'Bye':
    print('ChatBot : Bye')
    break

Error message:

C:\Users\vanos\Desktop\AI>ai.py
List Trainer: [####################] 100%
List Trainer: [####################] 100%                                                                               
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [###########         ] 56%Traceback (most recent call last):
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 1193, in _execute_context
context)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\default.py", line 509, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: attempt to write a readonly database

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
    File "C:\Users\vanos\Desktop\AI\ai.py", line 34, in <module>
bot.train(data)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\chatterbot\trainers.py", line 118, in train
self.storage.update(statement)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\chatterbot\storage\sql_storage.py", line 274, in update
self._session_finish(session)                                                                                         
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\chatterbot\storage\sql_storage.py", line 396, in _session_finish
session.commit()
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\session.py", line 954, in commit
self.transaction.commit()
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\session.py", line 467, in commit                                                                                                                  
self._prepare_impl()
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\session.py", line 447, in _prepare_impl
self.session.flush()
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\session.py", line 2313, in flush
self._flush(objects)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site
packages\sqlalchemy\orm\session.py", line 2440, in _flush
transaction.rollback(_capture_exception=True)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\util\langhelpers.py", line 66, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\util\compat.py", line 249, in reraise
raise value
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\session.py", line 2404, in _flush
flush_context.execute()
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\unitofwork.py", line 395, in execute
rec.execute(self)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\unitofwork.py", line 560, in execute
uow
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\persistence.py", line 181, in save_obj
mapper, table, insert)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\orm\persistence.py", line 872, in 
_emit_insert_statements
execute(statement, params)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 948, in execute
return meth(self, multiparams, params)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\sql\elements.py", line 269, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 1060, in _execute_clauseelement
compiled_sql, distilled_params
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 1200, in _execute_context
context)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 1413, in _handle_dbapi_exception
exc_info
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\util\compat.py", line 265, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\util\compat.py", line 248, in reraise
raise value.with_traceback(tb)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\base.py", line 1193, in _execute_context
context)
File "C:\Users\vanos\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\sqlalchemy\engine\default.py", line 509, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) attempt to 
write a readonly database [SQL: 'INSERT INTO statement (text, extra_data) 
VALUES (?, ?)'] [parameters: ('- what do you get when you cross a serious 
thief and a mad young man?', <memory at 0x035C5370>)] (Background on this 
error at: http://sqlalche.me/e/e3q8)

IDK WHY IT IS THAT BUT HELP

I ran the code again to double check and it gave a different error...

Error currently:

C:\Users\vanos\Desktop\AI>ai.py
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
You:
Traceback (most recent call last):
File "C:\Users\vanos\Desktop\AI\ai.py", line 39, in <module>
reply = bot.get_responce(message)
AttributeError: 'ChatBot' object has no attribute 'get_responce'

help lol

I tried for the third time to triple check and I got this error message:

C:\Users\vanos\Desktop\AI>ai.py
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100%
List Trainer: [####################] 100% 
List Trainer: [####################] 100%
List Trainer: [####################] 100%
You:Hi
Traceback (most recent call last):
File "C:\Users\vanos\Desktop\AI\ai.py", line 39, in <module>
reply = bot.get_responce(message)
AttributeError: 'ChatBot' object has no attribute 'get_responce'

At least this time it gave me the option to put hi lol. Please help people.

use this .

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os

bot = ChatBot('Bot')
bot.set_trainer(ListTrainer)

for files in os.listdir(r'C:\Users\vanos\chatterbot-corpus-1.2.0\chatterbot_corpus\data\english'):
    data = open(os.path.join(r'C:\Users\vanos\chatterbot-corpus-1.2.0\chatterbot_corpus\data\english' , files) ,'r').readlines()
    bot.train(data)

while True:
    message = input('You:')
    if message.strip() != 'Bye':
        reply = bot.get_responce(message)
        print('ChatBot :',reply)
    if message.strip() == 'Bye':
        print('ChatBot : Bye')
        break

`

Use

os.path.join('C:/', 'Users', 'vanos', 'chatterbot', 'rest_of_the_path')

Avoid using harcoded paths as they are platform dependent. Using functions like os.path.join() handles platform specific path format.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM