Я писал блокнот для своего портфолио. Но у меня он работает некорректно. Я открываю файл. Сохраняю. и при повторном открытии дублируется текст.
Вот пример:
1 Открываем файл.
2 Редактируем файл.
3 Сохраняем и открываем.
Вот сам код:
from tkinter import *
from tkinter import Menu
from tkinter import scrolledtext
from tkinter.filedialog import *
from tkinter import messagebox
def new_file():
sa = asksaveasfilename()
content = txt.get(1.0,END)
f = open(sa + ".txt", "w", encoding='utf-8')
f.write(content)
txt.delete(1.0, END)
f = open(sa, 'r')
txt.insert(INSERT, str(f.read()))
root.title(str(sa))
def save_file_kak():
sa = asksaveasfilename()
content = txt.get(1.0,END)
f = open(sa + ".txt", "w", encoding='utf-8')
f.write(content)
def open_file():
res = messagebox.askokcancel('Открыть файл', 'Все не сохраненные данные не сохранятся! Открыть новый файл?')
if res == True:
global f
global openfile
openfile = askopenfilename(parent=root)
txt.delete(1.0, END)
f = open(openfile, 'r+', encoding='utf-8')
s = f.read()
txt.insert(1.0, s)
root.title(str(openfile))
def save_file():
f.write(txt.get("1.0", 'end'))
titl = 'Новый текстовый документ.txt'
root = Tk()
root.title(titl)
root.geometry('700x500')
txt = scrolledtext.ScrolledText(root,width=800,height=800)
txt.pack()
menu = Menu(root)
filemenu = Menu(menu, tearoff=0)
filemenu.add_command(label='Новый Файл')
filemenu.add_command(label='Открыть файл', command=open_file)
filemenu.add_command(label='Сохранить', command=save_file)
filemenu.add_command(label='Сохранить как', command=save_file_kak)
menu.add_cascade(label='Файл',menu=filemenu)
root.config(menu=menu)
root.mainloop()