функция file.write() удаляет предыдущие значения

Я делаю код на языке python, парсер в телеграмм. Одна из его функций, приведенная ниже, должна записывать номер телефона, айди и имя пользователя в файл. Однако записывается лишь последний номер, айди и имя, а остальные стираются.

        with open('id-numbers.txt','r') as info:
        info.read()
        if a in info:
            pass
        else:
            with io.open('id-numbers.txt', 'w') as info:
                info.write('ID:'+(b)+' | '+'Номер телефона:'+(a)+' | '+'Username:'+(c)+'\n')

Выявил, что причина в проверке на отсутствие элемента в файле. Как можно эту проверку исправить, чтобы в файле были все номера итд и повторялись лишь 1 раз?


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy
  1. прочитать файл и убедится что такого телефона в нём нет.

  2. открыть файл на добавление и записать новую строку.

with open('id-numbers.txt', 'r') as info:
    is_in = a in info.read()
if not is_in:
    with open('id-numbers.txt', 'a') as info:
        info.write('ID:'+(b)+' | '+'Номер телефона:'+(a)+' | '+'Username:'+(c)+'\n')
→ Ссылка