# Filter unwanted lines
a = filter(lambda x: not x.startswith("%s:%s"%(args[1], sender.getName())), \
textfile.readlines())
# Write filtered lines to file
textfile.seek(0)
textfile.truncate()
textfile.writelines(list(x.strip() for x in a))
textfile.close()
And don't forget to open the file as readable and writable (r+
instead of r
).
To make writes reliable put all operations on file into context manager:
from itertools import ifilterfalse
with open('/home/reserve/Desktop/s.txt', 'r+') as f:
b = ifilterfalse(lambda x: x.startswith("%s:%s"%(args[1],sender.getName())),\
f.readlines())
f.seek(0)
f.truncate()
f.writelines(list(x.strip() for x in b))