Python 按表外合并子目录中的文件

Python 按表外合并子目录中的文件,python,csv,merge,Python,Csv,Merge,我有一个文件夹(split_libs),其中的子文件夹根据SraRunTable3.txt第9列和第32列中描述的示例_名称命名,每个子文件夹都与sra_研究相关。在每个子文件夹中都有一个seqs.fna文件,很遗憾,我无法更改该文件的名称-它是QIIME命令的输出 我想通过读取子文件夹名称(=示例名称),根据sra_研究将seqs.fna文件合并到子文件夹中。e、 g.来自同一SRA研究的所有seqs.fna将合并 目录的示例概述: split_libs sample1 s

我有一个文件夹(split_libs),其中的子文件夹根据SraRunTable3.txt第9列和第32列中描述的示例_名称命名,每个子文件夹都与sra_研究相关。在每个子文件夹中都有一个seqs.fna文件,很遗憾,我无法更改该文件的名称-它是QIIME命令的输出

我想通过读取子文件夹名称(=示例名称),根据sra_研究将seqs.fna文件合并到子文件夹中。e、 g.来自同一SRA研究的所有seqs.fna将合并

目录的示例概述:

split_libs
    sample1
      seqs.fna
    sample2
      seqs.fna
    sample3
      seqs.fna
SraRunTable的示例概述:

(...)Sample_Name(...)SRA_Study(...)
     sample_1        study_1
     sample_2        study_1 
     sample_3        study_2
以下是我迄今为止所尝试的:

import os
from operator import itemgetter

fields = itemgetter(9, 32)

with open('/home/andre/Desktop/PRJEB0000/SraRunTable3.txt') as csvfile:
next(csvfile)
for line in csvfile:
    sample_name, sra_study = fields(line.split())
for folder in os.listdir('./split_libs'):
    if folder == sample_name:
        open('seqs.fna') as infile, open('/home/andre/Desktop/PRJEB0000/cat_fna/' + sra_study + ".fna", 'a') as outfile:
            outfile.write(infile.read())
这个问题源于

任何贡献将不胜感激

import os
from operator import itemgetter

fields = itemgetter(9, 32)

with open('/home/andre/Desktop/PRJEB0000/SraRunTable3.txt') as csvfile:
next(csvfile)
for line in csvfile:
    sample_name, sra_study = fields(line.split())
    #open the folder corresponding to sample_name and add the seqs to the appropriate study file
    with open('split_libs/'+sample_name+'/seqs.fna') as infile, open('/home/andre/Desktop/PRJEB0000/cat_fna/' + sra_study + ".fna", 'a') as outfile:
            outfile.write(infile.read())

阿曼达·克莱尔的所有积分(未在Stackoverflow上注册)

@mhawke,就像我们说的,这是改进后的回复!