我看到越来越多的CSV文件包含多个部分,每个部分都包含自己的表.例如,此文件来自10XGenomics:
[gene-expression]
reference,/path/to/transcriptome
[libraries]
fastq_id,fastqs,feature_types
gex1,/path/to/fastqs,Gene Expression
mux1,/path/to/fastqs,Multiplexing Capture
[samples]
sample_id,cmo_ids
sample1,CMO301
sample2,CMO303
有时,节标题甚至嵌入到它们自己的行中,例如
[gene-expression],,
reference,/path/to/transcriptome,
[libraries],,
fastq_id,fastqs,feature_types
gex1,/path/to/fastqs,Gene Expression
mux1,/path/to/fastqs,Multiplexing Capture
[samples],,
sample_id,cmo_ids,
sample1,CMO301,
sample2,CMO303,
有没有一个可以直接处理这种切分的Python模块?我找不到如何使用Pandas 或csv
模块来做到这一点.例如,从上面的两个例子中,我希望得到一个字典,每个部分有一个条目,然后是每个部分的列表列表.
有些部分有标题,如果这也能处理就好了,例如类似于csv.DictReader
.
虽然编写一个可以解析这个特定示例的解决方案并不是特别困难,但要生成在一般情况下可以工作的解决方案要困难得多,例如,使用split
就可以轻松地解析一个简单的CSV文件,而csv
模块是400多行Python代码和更多的C代码行,所以我在这里真正寻找的是一个在一般情况下处理这个问题的模块.
PS:this question是相关的,但不幸的是,答案没有解决有关CSV解析器的问题