@6IXK1LL
Дебил

Как создать функцию сохранения файла?

Здравствуйте! Недавно я решил написать текстовый редактор на пайтоне.
вот его полный код:
from tkinter import *
from tkinter import filedialog as fd

root = Tk()
root.minsize(width=400,height=350)
root.geometry('700x450')
root.title('Master')

body = Text()
body.configure(width=700,height=450,bg='#374569',fg='white')
body.pack()

mainmenu = Menu(root)
root.configure(menu=mainmenu)


def save_file():
	textfilesaveas = fd.asksaveasfile()
	# ????
def open_file():
	textfileopen = fd.askopenfile()
	body.insert(END, textfileopen.read())
	textfileopen.close()
def save_file_bind(event):
	textfilesaveas = fd.asksaveasfile()
	# ????
def open_file_bind(event):
	textfileopen = fd.askopenfile()
	body.insert(END, textfileopen.read())
	textfileopen.close()
def close_program():
	root.destroy()
filemenu = Menu(mainmenu,tearoff=0)
mainmenu.add_cascade(label='File',menu=filemenu)
filemenu.add_command(label='Save..',accelerator='Ctrl+S',command=save_file)
filemenu.add_command(label='Open..',accelerator='Ctrl+O',command=open_file)
filemenu.add_separator()
filemenu.add_command(label='Exit',command=close_program)


root.bind("<Control-Key-s>", save_file_bind)
root.bind("<Control-Key-o>", open_file_bind)

root.mainloop()


если убрать лишнее:
from tkinter import *
from tkinter import filedialog as fd

root = Tk()
root.geometry('700x450')

body = Text()
body.configure(width=700,height=450)
body.pack()

mainmenu = Menu(root)
root.configure(menu=mainmenu)

def save_file():
	textfilesaveas = fd.asksaveasfile()
	# ????
def open_file():
	textfileopen = fd.askopenfile()
	body.insert(END, textfileopen.read())
	textfileopen.close()
filemenu = Menu(mainmenu,tearoff=0)
mainmenu.add_cascade(label='File',menu=filemenu)
filemenu.add_command(label='Save..',command=save_file)
filemenu.add_command(label='Open..',command=open_file)

root.mainloop()


у меня появился вопрос, как сохранять текст из поля в сохраненном файле?
  • Вопрос задан
  • 673 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kokapuk
Мало знаю про ткинтер, но вам каким то образом нужно получить текст из этого текстового поля, а далее записать в файл, например, мы получаем от пользователя путь, из диалогового окна и по этому пути создает текстовый документ.
with open(r'directory\filename.txt', 'w') as f:
    f.write('content')
Ответ написан
Комментировать
@Kardfox
Программист на Python с четырехлетним опытом.
Смотри, в твою переменную textfilesaveas записывается путь до выбранного пользователем файла. Ты открываешь файл способом выше с этим путем, читаешь содержимое body с помощью функции body.get(1.0, end) и изменяешь файл открытый ранее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы