Deleting a line from a file in python
How to delete a specific line containing a specific string in Python.
Ex-
Suppose I have a file fruit.txt having the following content:
Banana
Apple
Apple1
Grapes
Now, I want to delete Apple from that file and I have made this following function:
def deleteLine():
fname = 'fruit.txt'
f = open(fname)
output = []
for line in f:
if not "Apple" in line:
output.append(line)
f.close()
f = open(fname, 'w')
f.writelines(output)
f.close()
It gives this output;
Banana
Apple
So, the main problem is that the function is deleting both Apple and Apple1 but I only want to delete “Apple”.
The required should be like this:
Banana
Apple1
Grapes
How should I change my function so that it gives the correct output?
For python delete line from file, you need to open the file and read its contents in memory, then open the file again write the line to it but without the line you wish to omit:
e.g.:
with open("yourfile.txt", "r") as f:
lines = f.readlines()
with open("yourfile.txt", "w") as f:
for line in lines:
if line.strip("
") != "nickname_to_delete":
f.write(line)