Python如何批量合并txt文件

在实际工作中,我们可能会遇到需要合并多个txt文件的情况,这时候如果文件数量较多,手动合并将会非常繁琐和耗时。Python提供了一种简单的方法来批量合并txt文件,让我们来看看如何实现。

实际问题

假设我们有一个文件夹,里面存放了多个txt文件,我们需要将这些txt文件合并成一个新的txt文件,以便于后续处理和分析。

解决方案

我们可以使用Python的os和shutil模块来实现批量合并txt文件的功能。代码如下:

import os
import shutil

# 指定要合并的文件夹路径
folder_path = 'path_to_folder'

# 指定要生成的合并后的文件名
output_file = 'merged_file.txt'

# 获取文件夹中所有的txt文件
files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]

# 合并文件
with open(output_file, 'wb') as outfile:
    for file in files:
        with open(os.path.join(folder_path, file), 'rb') as infile:
            shutil.copyfileobj(infile, outfile)

在上面的代码中,我们首先指定了要合并的文件夹路径folder_path和要生成的合并后的文件名output_file。然后通过os.listdir()方法获取文件夹中所有的txt文件,并使用shutil.copyfileobj()方法将每个txt文件的内容复制到新文件中。

示例

假设我们有一个文件夹data,里面有三个txt文件file1.txtfile2.txtfile3.txt,内容分别为:

file1.txt:

This is file 1.

file2.txt:

This is file 2.

file3.txt:

This is file 3.

我们可以使用上面的代码来合并这三个txt文件,生成一个新的txt文件merged_file.txt,内容为:

This is file 1.
This is file 2.
This is file 3.

序列图

下面是合并txt文件的序列图:

sequenceDiagram
    participant User
    participant Python
    participant OS
    participant Shutil

    User->>Python: 指定文件夹路径和输出文件名
    Python->>OS: os.listdir(folder_path)
    OS-->>Python: txt文件列表
    loop 合并文件
        Python->>Shutil: copyfileobj(infile, outfile)
    end

状态图

下面是合并txt文件的状态图:

stateDiagram
    [*] --> Ready
    Ready --> Merging
    Merging --> Done
    Done --> [*]

结论

通过使用Python的os和shutil模块,我们可以轻松地批量合并txt文件,提高工作效率,减少手动操作的时间和错误。希望这篇文章对你有所帮助,谢谢阅读!