python 获取文件名部分相同的文件并合并

2024年04月29日 python 获取文件名部分相同的文件并合并 极客笔记

python 获取文件名部分相同的文件并合并

在日常工作中,我们经常会遇到需要将多个文件合并成一个的情况。有时候这些文件的文件名可能会有一部分是相同的,我们可以使用Python来实现获取文件名部分相同的文件并将它们合并成一个文件。本文将详细介绍如何使用Python来实现这个功能,并给出相应的代码示例。

步骤1:获取相同文件名部分的文件列表

首先,我们需要编写一个函数来获取文件名中相同的部分。我们可以使用os模块来获取指定目录下的所有文件,然后通过字符串操作来获取文件名的相同部分。以下是一个获取相同文件名部分的函数示例:

import os

def get_common_filename(path):
    files = os.listdir(path)
    if not files:
        return None

    common_prefix = os.path.commonprefix(files)
    return common_prefix

运行以上代码,我们可以得到一个文件夹下所有文件的文件名相同的前缀部分。

步骤2:将相同文件名部分的文件合并成一个文件

接下来,我们可以编写一个函数来将相同文件名部分的文件合并成一个文件。我们可以使用open函数来打开文件,然后以追加的方式将文件内容写入到目标文件中。以下是一个将相同文件名部分的文件合并的函数示例:

def merge_files_with_common_name(path, output_file):
    common_filename = get_common_filename(path)
    if not common_filename:
        return

    with open(output_file, 'w') as outfile:
        for filename in os.listdir(path):
            if filename.startswith(common_filename):
                with open(os.path.join(path, filename), 'r') as infile:
                    data = infile.read()
                    outfile.write(data)

以上代码会将指定目录下文件名以common_filename开头的文件内容合并到一个输出文件中。

示例

假设我们有以下文件在目录./files下:

  • file1.txt
  • file2.txt
  • file3.txt
  • file_common.txt

其中file_common.txt是我们希望合并的文件。我们可以通过以下代码来合并这些文件:

merge_files_with_common_name('./files', 'merged_file.txt')

运行以上代码后,file_common.txt的内容将会被合并到merged_file.txt中。

结论

通过以上方法,我们可以方便地获取文件名部分相同的文件并将它们合并成一个文件。这在处理大量相似文件时非常有用,能够节约时间和提高工作效率。

本文链接:http://so.lmcjl.com/news/3396/

展开阅读全文