Python Program to Replace Text in a File
Last Updated :
30 Nov, 2021
In this article, we are going to replace Text in a File using Python. Replacing Text could be either erasing the entire content of the file and replacing it with new text or it could mean modifying only specific words or sentences within the existing text.
Method 1: Removing all text and write new text in the same file
In this method we replacing all the text stored in the text file, for this, we will open the file in reading and writing mode and it will rewrite all the text.
Python3
s = input ( "Enter text to replace the existing contents:" )
f = open ( "file.txt" , "r+" )
f.truncate( 0 )
f.write(s)
f.close()
print ( "Text successfully replaced" )
|
Output:
Enter text to replace the existing contents: Geeks
Text successfully replaced
Method 2: Using Replace function in for loop
The simple for loop is a conventional way to traverse through every line in the given text file and find the line we want to replace. Then, the desired line can be replaced by using the replace() function. Finally, the file is opened in the write mode, and the replaced content is written in the given file.
Python3
x = input ( "enter text to be replaced:" )
y = input ( "enter text that will replace:" )
f = open ( "file.txt" , "r+" )
l = f.readlines()
c = 0
for i in l:
if x in i:
Replacement = i.replace(x, y)
l = Replacement
c + = 1
f.truncate( 0 )
f.writelines(l)
f.close()
print ( "Text successfully replaced" )
|
Output:
Enter text to be replaced: Geeks
Enter text that will replace: Geekforgeeks
Text successfully replaced
Method 3: Using the OS module to replace the file with new text
We use the os module to rename a new file with the original file name. In this method instead of editing the already existing file, we instead create a new file with the modified content and then delete the old file and rename the new file.
Python
import os
x = input ( "Enter text that will replace the existing text:" )
f = open ( "file.txt" , "r+" )
f1 = open ( "new.txt" , "r+" )
f1.write(x)
os.remove( "file.txt" )
os.rename( "new.txt" , "file.txt" )
f1.close()
print ( "File replaced" )
|
Output:
Enter text that will replace the existing text: geeks
File replaced
The fileinput.input() method gets the file as the input line by line and is mainly utilized for appending and updating the data in the given file. The fileinput and sys module need to be imported to the current Python code in order to run the code without any errors. The following code uses the fileinput.input() function for replacing the text in a line in Python.
Python3
import sys
import fileinput
x = input ( "Enter text to be replaced:" )
y = input ( "Enter replacement text" )
for l in fileinput. input (files = "file.txt" ):
l = l.replace(x, y)
sys.stdout.write(l)
|
Output:
Enter text to be replaced: Geeks
Enter replacement text: Geeksforgeeks
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...