How to remove lines starting with any prefix using Python? (original) (raw)

Last Updated : 22 Jan, 2026

Given a text file, remove all lines that start with a specified prefix. Print the remaining lines and save them into a new file.

**Example: (file.txt)

TextGenerator is dummy
Hello World
Python is awesome
TextGenerator skipped

Prefix to remove: "TextGenerator"

**Output:
Hello World
Python is awesome

**Sample file:

myfile1.txt

Below are different methods to remove lines starting with a specific prefix:

Using Loop with startswith()

startswith() method checks if a string begins with a specified prefix. It is simple, fast, and memory-efficient.

Python `

f1 = open('myfile1.txt','r') f2 = open('myfile2.txt','w')

for line in f1.readlines(): if not (line.startswith('TextGenerator')):

    print(line, end=' ')
    f2.write(line)

f2.close() f1.close()

`

**Output

**Explanation:

Using Loop with find()

find() method returns the index of a substring in a string or -1 if not found. If the prefix is at index 0, we skip that line.

Python `

f1 = open('myfile1.txt', 'r') f2 = open('myfile2.txt', 'w')

for line in f1: if line.find('TextGenerator') != 0: print(line, end=' ') f2.write(line)

f1.close() f2.close()

`

**Output:

**Explanation:

Using Regex (re Module)

Regex allows pattern matching. The **^ metacharacter matches the start of a line. This method is more flexible but slower than startswith().

Python `

import re

f1 = open('myfile1.txt', 'r') f2 = open('myfile2.txt', 'w')

for line in f1: if not re.match("^TextGenerator", line):
print(line, end=' ') f2.write(line)

f1.close() f2.close()

`