Нужно записать данные в конец файла

Рейтинг: 0Ответов: 1Опубликовано: 07.02.2023

Всем привет. Нужно записать данные в конец файла

import time
import json

from datetime import datetime

while True :

    with open("data.json", "r") as file:

        for line in file:

            json_line = json.loads(line.strip()) # парсим строку которую получили с файла

            notification_time = json_line['time'] # получаем со строки значение time

            status = json_line['status']  # получаем значение status

            notification_time_object = datetime.strptime(notification_time, '%Y-%m-%d %H:%M:%S.%f') # Превращаем time в обьект, что бы можно было сравнить даты

            if datetime.now() >= notification_time_object and status == 1:
                    if status1 == status:
                        status2 = 0
                        with open("data.json", 'w') as file:
                             file.write(str(status2))

                # status1 = status2.replace('"status":"1"', '"status":"0"')
                # with open("data.json", 'w') as file:
                #     file.write(status1)
                print('Alert! - ' + str(json_line))


    time.sleep(5)

Ответы

▲ 2

Значения аргумента при открытии файла:

  • r - открывает файл только для чтения,
  • w - открыт для записи (перед записью файл будет очищен),
  • x - эксклюзивное создание, бросается исключение FileExistsError, если файл уже существует.
  • a - открыт для добавления в конец файла (на некоторых Unix-системах пишет в конец файла вне зависимости от позиции курсора)
  • "+" символ обновления (чтение + запись).
  • t - символ текстового режима.
  • b - символ двоичного режима (для операционных систем, которые различают текстовые и двоичные файлы).

Попробуйте - with open("data.json", 'a') as file: