Добавление числа к числу после определённого времени
код:
File = open(filename.txt, 'r')
number = File.read()
File.close
В файле уже есть число, Нужно чтобы после 300 секунд, в файл добавлялось по единице (1), я пробовал много вариантов, но у меня просто никак не получалось, как будто прям не хочет. (Если вы скажете: а может просто файл не существует? Я отвечу: он существует) Помогите мне пожалуйста, очень прошу! Что я пытался делать:
Fille = open(filename.py, "w")
itog = int(number)+1
time.sleep(300)
File.write(str(itog))
File.close
Ответы (1 шт):
Для начала Вам нужно открыть файл. Для этого нужно выбрать режим открытия файла. Режим r — это режим только для чтения, а вам нужен режим для чтения и записи (r+). Затем Вам нужно передать имя файла в виде строки (т.е. заключить его в кавычки).
Для записи можно использовать метод write. Но нужно не забыть, что любые операции чтения/записи переводят курсор, и нам нужно возвращать его в начало файла. Иногда ещё требуется урезать файл с помощью truncate, но в Вашем случае размер содержимого не уменьшается, поэтому это не требуется.
Для того чтобы подождать 300 секунд подойдёт функция sleep.
Пример:
from time import sleep
with open('filename.txt', 'r+') as file: # Дескриптор с правами на чтение и запись
while True: # Бесконечный цикл
s = file.read().rstrip() # Читаем содержимое и удаляем перевод строки
number = int(s) # Преобразуем содержимое в число
file.seek(0) # Переводим курсор в начало файла
file.write(str(number + 1)) # Записываем новое содержимое
file.seek(0) # Переводим курсор в начало файла
sleep(300) # Ждём 300 секунд