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