Python 连接来自不同文件夹的fasta文件

Python 连接来自不同文件夹的fasta文件,python,loops,concatenation,Python,Loops,Concatenation,我有大量的fasta文件,这些只是不同子文件夹中的文本文件。我需要的是一种在目录中搜索具有相同名称的文件的方法,并将这些文件连接到具有输入文件名称的文件中。我不能手动操作,因为我有10000多个基因需要这样做 到目前为止,我已经有了下面的Python代码,它查看其中一个目录,然后使用这些文件名搜索其他目录。这将返回一个列表,其中包含每个文件的完整路径 import os from os.path import join, abspath path = '/directo

我有大量的fasta文件,这些只是不同子文件夹中的文本文件。我需要的是一种在目录中搜索具有相同名称的文件的方法,并将这些文件连接到具有输入文件名称的文件中。我不能手动操作,因为我有10000多个基因需要这样做

到目前为止,我已经有了下面的Python代码,它查看其中一个目录,然后使用这些文件名搜索其他目录。这将返回一个列表,其中包含每个文件的完整路径

    import os
    from os.path import join, abspath

    path = '/directoryforfilelist/'    #Directory for source list
    listing = os.listdir(path)

    for x in listing:
        for root, dirs, files in os.walk('/rootdirectorytosearch/'):
            if x in files:
            pathlist = abspath(join(root,x))
我遇到的难题是如何连接它返回的同名文件。此脚本的结果如下所示

    /directory1/file1.fasta
    /directory2/file1.fasta
    /directory3/file1.fasta
    /directory1/file2.fasta
    /directory2/file2.fasta
    /directory3/file2.fasta
在本例中,我需要最终结果是两个名为file1.fasta和file2.fasta的文件,它们包含来自每个相同命名文件的文本


任何关于从这里出发的线索都将不胜感激。虽然我在Python中完成了这一部分,但完成这项工作对我来说没问题。如果有必要,这将在Mac上运行。

对于列表中的每个文件,以附加模式分配目标文件,读取源文件的每一行,并将其写入目标文件


假设目标文件夹一开始是空的,并且不在/rootdirectorytosearch中。

未测试,但我大致会这样做:

from itertools import groupby
import os

def conc_by_name(names):
    for tail, group in groupby(names, key=os.path.split):
        with open(tail, 'w') as out:
           for name in group:
              with open(name) as f:
                  out.writelines(f)
这将在当前文件夹中创建示例中的文件file1.fasta和file2.fasta