繁体   English   中英

如何使用 python 中 tsv 文件中的名称从一个文件夹中打开多个文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM