Deleting a line from a file in python

602    Asked by BernadetteBond in Python , Asked on Apr 17, 2021

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?

Answered by Bernadette Bond

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)

Your Answer

Interviews

Parent Categories