Как сделать это правильно?
Я захотел сделать кликер на Tkinter. У меня в приложении есть кнопка Save. По сути дела если на эту кнопку нажать, она должна записать сколько кликов я сделал. Но у меня вопрос не по этой кнопке. Как сделать так, чтобы программа при ее запуске сразу открыла файл посмотрела сохранял ли пользователь количество кликов или нет. Программа находила в какой строке находится число(если оно есть в файле) и втсавляла это количество кликов в переменную clicks и пользователь начинал не сначала. А если файл пустой, то программа напишет в переменную 0 кликов:
clicks = 0
И пользователь начнет кликать.
Файл формата .txt если что. Программа именно в него должна записывать все данные.
Ответы (1 шт):
Полезная статья о работе с файлами с использованием Python
Простенький код кликера на tkinter с возможностью сохранять прогресс в текстовом файле:
import tkinter as tk
win = tk.Tk()
win.geometry("400x400")
click = 0
try: # Если файл есть, click перезаписывается значением с файла
file = open('clicks.txt','r', encoding='utf-8')
click = int(file.read())
file.close()
except: # Если файла нет, он создается с значением уже существующего click(0)
file = open('clicks.txt','w')
file.write(str(click))
file.close()
def saveFunc(): # Запись количества кликов в файл
file = open('clicks.txt','w')
file.write(str(click))
file.close()
def clickFunc(): # Отображение счетчика кликов
global click
click += 1
labelClicks["text"] = "Click: " + str(click)
buttonSave = tk.Button(win, text="Save", command=saveFunc)
buttonClick = tk.Button(win, text="Click", command =clickFunc)
labelClicks = tk.Label(win, text=f"Click: {click}")
buttonSave.pack()
buttonClick.pack()
labelClicks.pack()
win.mainloop()
Единственное, что в файле записывается лишь число кликов, но думаю, немного изучив тему с статьи, Вы сможете изменить код под себя.