欢迎访问宙启技术站
智能推送

使用Python编写一个简单的文件分割合并工具

发布时间:2023-12-04 09:56:30

下面是一个简单的文件分割合并工具的Python代码实现:

import os


def split_file(input_file, chunk_size):
    # 检查输入文件是否存在
    if not os.path.exists(input_file):
        print("输入文件不存在!")
        return
    
    # 获取输入文件的文件名和扩展名
    file_name, file_extension = os.path.splitext(input_file)

    # 读取输入文件
    with open(input_file, 'rb') as f:
        # 分割文件的计数器
        count = 0
        while True:
            # 读取chunk_size大小的数据
            chunk = f.read(chunk_size)
            if not chunk:
                # 文件已经读取完毕
                break

            # 拼接新文件名
            output_file = file_name + "_" + str(count) + file_extension

            # 创建并写入新文件
            with open(output_file, 'wb') as out_file:
                out_file.write(chunk)

            # 更新分割文件的计数器
            count += 1


def merge_files(output_file, *input_files):
    # 创建并打开目标文件
    with open(output_file, 'wb') as out_file:
        for input_file in input_files:
            # 打开源文件并逐块读取写入目标文件
            with open(input_file, 'rb') as in_file:
                chunk = in_file.read()
                out_file.write(chunk)


# 使用例子
if __name__ == "__main__":
    # 分割文件
    split_file("input.txt", 1024)
    
    # 合并文件
    input_files = ["input.txt_0", "input.txt_1", "input.txt_2"]
    merge_files("output.txt", *input_files)

上述代码中,split_file函数用于将输入文件切割成固定大小的块,并保存为新的文件。merge_files函数则用于合并多个输入文件为一个输出文件。使用例子中,我们首先将一个名为input.txt的文件切割成块,然后再将这些块合并成一个名为output.txt的文件。

这个实现只是简单地按照指定的大小进行分割和合并,没有考虑其他的错误处理和优化的情况。在实际使用时,可能需要根据具体的需求进行修改和扩展。