Python Program to merge two files into a third file
Last Updated :
06 Sep, 2024
Reading and writing to a file. Let the given two files be file1.txt and file2.txt. Our Task is to merge both files into a third file say file3.txt. The following are steps to merge in Python.
Note: To successfully run the below program file1.txt and file2.txt must exist in the same folder. Suppose the text files file1.txt and file2.txt contain the following data.
Program to Merge two files into New File
Below are the methods that we will cover in this article:
file1.txt
file2.txt
Naive Approach to merge two files into a third file
Open file1.txt and file2.txt in read mode then open file3.txt in write mode. Read the data from file1 and add it in a string. Read the data from file2 and concatenate the data of this file to the previous string then write the data from the string to file3 and close all the files
Python
data = data2 = "";
# Reading data from file1
with open('file1.txt') as fp:
data = fp.read()
# Reading data from file2
with open('file2.txt') as fp:
data2 = fp.read()
# Merging 2 files
# To add the data of file2
# from next line
data += "\n"
data += data2
with open ('file3.txt', 'w') as fp:
fp.write(data)
Output: 
Program to merge two files into a third file using a for loop
The above approach can be shortened using for loop. Create a list containing filenames then open file 3 in write mode. Iterate through the list and open each file in read mode. Read the data from files and simultaneously write the data in file3 and close all the files.
Python
# Creating a list of filenames
filenames = ['file1.txt', 'file2.txt']
# Open file3 in write mode
with open('file3.txt', 'w') as outfile:
# Iterate through list
for names in filenames:
# Open each file in read mode
with open(names) as infile:
# read the data from file1 and
# file2 and write it in file3
outfile.write(infile.read())
# Add '\n' to enter data of file2
# from next line
outfile.write("\n")
Output: 
Program to merge two files into a third file using the Shutil module
In this method, we use the shutil.
copyfileobj()
function to copy the contents of file1.txt
and file2.txt
into the merged_file.txt
. The function shutil.copyfileobj()
efficiently copies data from one file object to another, which is useful for merging files without loading the entire contents into memory at once.
Python
import shutil
def merge_files_with_shutil(file1, file2, merged_file):
with open(merged_file, 'wb') as outfile:
for filename in [file1, file2]:
with open(filename, 'rb') as infile:
shutil.copyfileobj(infile, outfile)
# Usage:
file1 = 'file1.txt'
file2 = 'file2.txt'
merged_file = 'merged_file.txt'
merge_files_with_shutil(file1, file2, merged_file)
Output:

Program to merge two files into a third file using os
module
The os
module alone is not sufficient to merge files. We'll need to use file handles to read and write data. Here's the correct way to merge two files into a third file using the os
module and file handles
Python
import os
def merge_files_with_os(file1, file2, merged_file):
with open(merged_file, 'w') as outfile:
for filename in [file1, file2]:
with open(filename, 'r') as infile:
for line in infile:
outfile.write(line)
# Usage:
file1 = 'file1.txt'
file2 = 'file2.txt'
merged_file = 'merged_file.txt'
merge_files_with_os(file1, file2, merged_file)
Output:
Similar Reads
Python Program to Merge Mails In this article, we are going to merge mails with Python Python Program to Merge MailsTo merge two or more mail files in Python, the below following steps have to be followed: To execute the program, firstly we require two .txt files 'mail1.txt' and 'mail2.txt' where both of the .txt files will cont
2 min read
Python Program to Find Unique Lines From Two Text Files In this article, we will discuss finding unique lines from two text files and storing them using Python. To understand the concept we will take the two text file and read the file and find the unique line based on conditions and append it to another file. So, let's understand the implementation of t
4 min read
Python | Merge two text files Given two text files, the task is to merge the data and store in a new text file. Let's see how can we do this task using Python. To merge two files in Python, we are asking user to enter the name of the primary and second file and make a new file to put the unified content of the two data into this
2 min read
Append Text or Lines to a File in Python Appending text or lines to a file is a common operation in programming, especially when you want to add new information to an existing file without overwriting its content. In Python, this task is made simple with built-in functions that allow you to open a file and append data to it. In this tutori
3 min read
Python | Merge two list of lists according to first element Given two list of lists of equal length, write a Python program to merge the given two lists, according to the first common element of each sublist. Examples: Input : lst1 = [[1, 'Alice'], [2, 'Bob'], [3, 'Cara']] lst2 = [[1, 'Delhi'], [2, 'Mumbai'], [3, 'Chennai']] Output : [[1, 'Alice', 'Delhi'],
6 min read