[英]Consolidate multiple tsv files from a folder into one using python
[英]How to open multiple files from a folder using the names in tsv file in python?
我有一个 metadata.tsv 文件,例如,
id group
SRR01 1
SRR02 1
SRR04 2
SRR05 2
在目录中,我有以下文件:SRR01_1.fq、SRR01_2.fq、SRR02_1.fq、SRR02_2.fq、SRR04_1.fq、SRR04_2.fq、SRR05_1.fq、SRR05_2.fq
现在,我需要按组输入文件,然后 output 将结果放在单独的文件夹中。
我试过使用 panda 和 glob。
也许沿着这些路线:
import pandas
metadata = pandas.read_csv('metadata.tsv', sep= '\t')
rule all:
input:
expand('{group}.txt', group= metadata.group)
rule one:
input:
ids= lambda wc: metadata[metadata.group == int(wc.group)].id,
output:
out= '{group}.txt',
shell:
r"""
echo {input.ids} > {output.out}
"""
您使用 lambda function 作为输入来查询 dataframe metadata
并返回与每个{group}.
请注意,此处假设列group
的类型为 integer。
如果您尝试在该目录中的所有文件中使用“函数”,您可以使用以下代码:
import os
for path, dir, files in os.walk(os.getcwd()#Or your directory):
for file in files:
pass #Your code here!
路径-> 为您提供该文件的路径(不包括该文件)
dir -> 给你那个文件的目录(对你来说不是很有用)
files -> 为您提供目录中的文件列表
注意:walk 方法将在目录中的每个子文件夹中“遍历”。 因此,如果您在该文件夹中有更多目录,请记住它也会包含其中的文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.