Python 按表外合并子目录中的文件
我有一个文件夹(split_libs),其中的子文件夹根据SraRunTable3.txt第9列和第32列中描述的示例_名称命名,每个子文件夹都与sra_研究相关。在每个子文件夹中都有一个seqs.fna文件,很遗憾,我无法更改该文件的名称-它是QIIME命令的输出 我想通过读取子文件夹名称(=示例名称),根据sra_研究将seqs.fna文件合并到子文件夹中。e、 g.来自同一SRA研究的所有seqs.fna将合并 目录的示例概述: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
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,就像我们说的,这是改进后的回复!