Как удалить определенное значение из текстового файла? Python
Имеется ids.txt файл с id пользователей в каждой строке:
1234
1256
5125
6246
Нужен код, который удаляет запрашиваемый id, если такой имеется в документе.
del = input('id')
ids = open('ids.txt', '*режим*' , encoding='UTF-8')
if del in ids:
#код для удаления id в переменной del из файла ids
Если есть чудо-способ без удаления и создания нового файла, то буду очень рад
Ответы (1 шт):
Автор решения: whizz169
→ Ссылка
Можно просто перезаписать текущий файл. Открыть его сначала на чтение, поместить строки в переменную, потом на запись и записывать в него то, что вам нужно
with open("yourfile.txt", "r") as f:
lines = f.readlines()
with open("yourfile.txt", "w") as f:
for line in lines:
if line.strip("\n") != "ненужный id":
f.write(line)
Или вот такой способ с одним опеном, подсмотрел его на англоязычном SO, но не проверял. Открываем файл в режиме "r+":
with open("yourfile.txt", "r+") as f:
lines = f.readlines()
f.seek(0) # устанавливаем указатель в начало файла, перед имеющимися значениями
for line in lines:
if line != "ненужный id":
f.write(line)
f.truncate() # усекаем файл до позиции, на которой стоит указатель в данный момент
И не называйте переменные именами имеющихся дефолтных функций/методов (del)