FileNotFoundError: [Errno 2] No such file or directory: Python
FileNotFoundError: [Errno 2] No such file or directory: выходит после того как я пытаюсь открыть файл.
Тут я запускаю скрипт с меин файла скрин https://prnt.sc/vm8psi
Дальше этот меин файл запускает скрипт но сначала записывает данные в файл.
class Main_Menu:
def __init__(self, login):
self.login = login
with open('scripts/logs/save_log.txt', 'w') as f:
f.write(self.login)
check_lvl_user()
После чего в скрипте происходит следущее
login = open('logs/save_log.txt', 'r').read()
exp_user_from_bd = s.execute("""SELECT exp FROM users_economic WHERE login = (?)"""
, (login,)).fetchone()[0]
lvl_user_from_bd = s.execute("""SELECT lvl FROM users_economic WHERE login = (?)"""
, (login,)).fetchone()[0]
def check_lvl_user():
lvl_end = int(exp_user_from_bd ** (1 / 4))
if lvl_user_from_bd < lvl_end:
s.execute("""UPDATE users_economic SET lvl = (?) WHERE login = (?)"""
, (lvl_end, login))
db.commit()
messagebox.showinfo('Поздравляем', f'Вы достигли {lvl_end}-лвла')
Скрипт находитса в данной директории https://prnt.sc/vm8s9a
А файл в который я записываю данные находитса в https://prnt.sc/vm8sya
Эту функцию я вызываю в отдельном потоке.
Ответы (1 шт):
Когда выполняется функция open(имя-файла), и путь к файлу относительный (т.е. начинается не с /), то файл ищется не относительно питон файла, из которого идет вызов, а относительно текущей рабочей директории процесса. Посмотреть директорию можно так: import os; os.getcwd().
Файл не находится, потому, что не там ищете. Проверьте перед вызовом open что вернет os.getcwd() в обоих случаях. Очевидно, что в программе неправильные предположения о текущем рабочем каталоге. Либо используйте полный путь либо по другому синхронизируйте место записи и чтения.