Не работает exe файл
Создал exe с помощью auto-py-to-exe, использовал одну папку и один текстовый файл, после создания файла закинул текстовый файл и папку в фолдер exe файла, однако программа не читает данные из файлов папки и текстового файла, код ниже:
from tkinter import messagebox, ttk, simpledialog
#---------------------------------------Функции кнопок----------------------------------------------
def btn_click():
global current_day, nums, entries, subjects, file, lessons, days
number = int(nums.get())
subject = subjects.get()
output_empty = f'Под номером {number} предмет удален'
if number == -1:
messagebox.showerror(title='Ошибка', message='Вы не ввели номер предмета!')
else:
if subject == '*удалить предмет*':
with open(f'Schedule/{current_day}.txt', 'r+', encoding='utf-8') as x:
day = x.read().split('|')
day[number - 1] = 'пусто'
x.truncate(0)
x.seek(0)
x.write('|'.join(day))
messagebox.showinfo(title='Операция завершена', message=output_empty)
elif subject == 'Добавить':
prompt = simpledialog.askstring(title='Введите новый предмет', prompt='Введите новый предмет')
messagebox.showinfo(title='Операция завершена', message=f'Под номером {number} записан предмет {prompt}')
with open(f'Schedule/{current_day}.txt', 'r+', encoding='utf-8') as x:
day = x.read().split('|')
day[number - 1] = prompt
x.truncate(0)
x.seek(0)
x.write('|'.join(day))
with open('lessons.txt', 'r+', encoding='utf-8') as x:
subjects['values'] = ['*удалить предмет*'] + x.read().split('|') + ['Добавить']
else:
with open(f'Schedule/{current_day}.txt', 'r+', encoding='utf-8') as x:
day = x.read().split('|')
day[number - 1] = subject
x.truncate(0)
x.seek(0)
x.write('|'.join(day))
messagebox.showinfo(title='Операция завершена', message=f'Под номером {number} записан предмет {subject}')
def clear_lessons():
with open(f'lessons.txt', 'r+', encoding='utf-8') as x:
x.truncate(0)
x.seek(0)
messagebox.showinfo(title='Операция завершена', message='Список предметов очищен')
with open('lessons.txt', 'r+', encoding='utf-8') as x:
subjects['values'] = ['*удалить предмет*'] + ['Добавить']
def clear_schedule():
for i in range(1, 6):
with open(f'Schedule/{i}.txt', 'r+', encoding='utf-8') as x:
day = x.read().split('|')
for j in range(8):
day[j - 1] = 'пусто'
x.truncate(0)
x.seek(0)
x.write('|'.join(day))
messagebox.showinfo(title='Операция завершена', message='Список предметов очищен')
def left():
global current_day, switch_label, week, left_b
current_day -= 1
switch_label.configure(text=week[current_day])
if current_day == 1:
left_b.configure(state='disable', relief=FLAT)
else:
right_b.configure(state='active', relief=GROOVE)
def right():
global current_day, switch_label, week, right_b
current_day += 1
switch_label.configure(text=week[current_day])
if current_day == 6:
right_b.configure(state='disable', relief=FLAT)
else:
left_b.configure(state='active', relief=GROOVE)
#---------------------------------------Конфиг второго окна----------------------------------------------
def show_schedule():
Schedule = Toplevel(Main_window)
Schedule.geometry('1800x700+80+80')
Schedule.title('Расписание')
Schedule.resizable(width=False, height=False)
md = (d1 := open('Schedule/1.txt', 'r+', encoding="utf-8")).readline().split('|')
tue = (d2 := open('Schedule/2.txt', 'r+', encoding="utf-8")).readline().split('|')
wd = (d3 := open('Schedule/3.txt', 'r+', encoding="utf-8")).readline().split('|')
thu = (d4 := open('Schedule/4.txt', 'r+', encoding="utf-8")).readline().split('|')
fri = (d5 := open('Schedule/5.txt', 'r+', encoding="utf-8")).readline().split('|')
st = (d6 := open('Schedule/6.txt', 'r+', encoding="utf-8")).readline().split('|')
(MainFrame := LabelFrame(Schedule)).pack(side=TOP)
(monday := LabelFrame(MainFrame, bg='gray', text='Понедельник')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
(tuesday := LabelFrame(MainFrame, bg='gray', text='Вторник')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
(wednesday := LabelFrame(MainFrame, bg='gray', text='Среда')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
(thursday := LabelFrame(MainFrame, bg='gray', text='Четверг')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
(friday := LabelFrame(MainFrame, bg='gray', text='Пятница')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
(saturday := LabelFrame(MainFrame, bg='gray', text='Суббота')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=LEFT)
for i in range(8):
(m := LabelFrame(monday)).pack(side=TOP)
Label(m, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(m, width=30, height=2, bg='cornsilk2', text=f'{md[i]}').pack(side=LEFT)
for i in range(8):
(tu := LabelFrame(tuesday)).pack(side=TOP)
Label(tu, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(tu, width=30, height=2, bg='cornsilk2', text=f'{tue[i]}').pack(side=LEFT)
for i in range(8):
(w := LabelFrame(wednesday)).pack(side=TOP)
Label(w, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(w, width=30, height=2, bg='cornsilk2', text=f'{wd[i]}').pack(side=LEFT)
for i in range(8):
(th := LabelFrame(thursday)).pack(side=TOP)
Label(th, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(th, width=30, height=2, bg='cornsilk2', text=f'{thu[i]}').pack(side=LEFT)
for i in range(8):
(f := LabelFrame(friday)).pack(side=TOP)
Label(f, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(f, width=30, height=2, bg='cornsilk2', text=f'{fri[i]}').pack(side=LEFT)
for i in range(8):
(s := LabelFrame(saturday)).pack(side=TOP)
Label(s, width=2, height=2, bg='cornsilk2', text=f'{i + 1}').pack(side=LEFT)
Label(s, width=30, height=2, bg='cornsilk2', text=f'{st[i]}').pack(side=LEFT)
Button(Schedule, bg='darkgray', relief=GROOVE, bd=8, text='Закрыть', command=lambda: Schedule.destroy()).pack(side=TOP,anchor=SE)
d1.close()
d2.close()
d3.close()
d4.close()
d5.close()
d6.close()
#---------------------------------------Списки и переменные----------------------------------------------
current_day = 1
week = {1:'Понедельник',
2:'Вторник',
3:'Среда',
4:'Четверг',
5:'Пятница',
6:'Суббота'}
#---------------------------------------Конфиг главного окна----------------------------------------------
Main_window = Tk()
Main_window.geometry('800x600+200+200')
Main_window.title('Составитель расписания')
Main_window.config(bg='azure3')
Main_window.resizable(width=False, height=False)
#Переключатель дня недели
(switcher := Frame(Main_window, bg='azure3')).pack(ipadx=10, ipady=10, expand=1, side=TOP)
(left_b := Button(switcher, text='◀', bg='darkgray', relief=FLAT, bd=8, command=left)).pack(side=LEFT, anchor=CENTER)
(switch_label := Label(switcher, text=week[current_day], bg='darkgray', bd=2, width=10, relief=GROOVE)).pack(ipadx=10, ipady=10, side=LEFT, anchor=CENTER)
(right_b := Button(switcher, text='▶', bg='darkgray', relief=GROOVE, bd=8, command=right)).pack(side=LEFT, anchor=CENTER)
left_b.configure(state='disable')
#Поля ввода
(entries := Frame(Main_window, bg='azure3')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH ,side=TOP)
Label(entries, text='Выберите номер урока', bg='azure3').pack(ipadx=10, ipady=10, side=TOP)
nums = ttk.Combobox(entries, textvariable=int)
nums['values'] = ['1', '2', '3', '4', '5', '6', '7', '8']
nums['state'] = 'readonly'
nums.pack(ipadx=10, ipady=10, side=TOP)
Label(entries, text='Введите предмет', bg='azure3').pack(ipadx=10, ipady=10, side=TOP)
subjects = ttk.Combobox(entries, textvariable=int)
with open('lessons.txt', 'r+', encoding='utf-8') as x:
subjects['values'] = ['*удалить предмет*'] + x.read().split('|') + ['Добавить']
subjects['state'] = 'readonly'
subjects.pack(ipadx=10, ipady=10, side=TOP)
Button(entries, text='Отправить', bg='darkgray', relief=GROOVE, bd=8, command=btn_click).pack(ipadx=10, ipady=10, side=TOP)
#Кнопки
(buttons := Frame(Main_window, bg='azure3')).pack(ipadx=10, ipady=10, expand=1, fill=BOTH, side=TOP)
Button(buttons, text='Показать текущее расписание', bg='darkgray', relief=GROOVE, bd=8, width=28, command=show_schedule).pack(ipadx=10, ipady=10, side=RIGHT, anchor='w')
Button(buttons, text='Очистить список предметов', bg='darkgray', relief=GROOVE, bd=8, width=28, command=clear_lessons).pack(ipadx=10, ipady=10, side=RIGHT, anchor='c')
Button(buttons, text='Очистить текущее расписание', bg='darkgray', relief=GROOVE, bd=8, width=28, command=clear_schedule).pack(ipadx=10, ipady=10, side=RIGHT, anchor='e')
Main_window.mainloop()```
Не знаю, надо ли прикреплять папку и текстовый файл, учитывая, что в питоне все работает.
Возможно, что-то напутал с путями при открытии файлов, т.к. в VSC эта система странно работает.
Помогите пожалуйста