Combining Multiple Text Files into One in Python

In various scenarios, such as data consolidation, log aggregation, or simple file organization, there might be a need to combine multiple text files into a single file. Python, with its robust file handling capabilities, makes this task straightforward. This article provides an overview of a Python script designed to combine all text files in a specified directory into a single text file.

The Python Script

Importing Required Module

import os

The os module in Python is used for interacting with the operating system. It provides a portable way of using operating system-dependent functionality, including file and directory operations.

Setting Up Directory and Output File

directory = "txt"
output_file_path = "txt/combined/combined.txt"

Here, we define two variables:

  • directory: The path to the folder containing the text files to be combined.
  • output_file_path: The path where the combined text file will be saved.

Opening the Output File

with open(output_file_path, "w", encoding='utf-8') as output_file:
    # Your code here

This code uses a context manager (with statement) to open the output file in write mode ("w"). The file is opened with utf-8 encoding to ensure compatibility with various text formats.

Looping Over and Processing Text Files

for filename in os.listdir(directory):
    if filename.endswith(".txt"):
        filepath = os.path.join(directory, filename)

        with open(filepath, "r", encoding='utf-8') as file:
            output_file.write(file.read())
            output_file.write("\n")  # add a newline between files

This section of the script:

  1. Iterates over each file in the specified directory.
  2. Checks if the file is a text file (.txt extension).
  3. Reads the contents of each text file.
  4. Writes the contents to the output file, followed by a newline to separate the contents of different files.

Conclusion

This script is a simple yet effective way to combine multiple text files into a single file using Python. It can be easily modified or extended to fit more complex requirements, such as adding file headers, filtering specific content, or handling other file types.

Python’s ease of use and powerful standard library make it an excellent choice for file handling and manipulation tasks, offering a high degree of automation and efficiency for routine data processing tasks.