Добавление числа к числу после определённого времени

код:

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 шт):

Автор решения: nomnoms12

Для начала Вам нужно открыть файл. Для этого нужно выбрать режим открытия файла. Режим 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 секунд
→ Ссылка