2

我有一个包含近 6K 条目的巨大 CSV 文件,文件看起来像这样:

PDB ID  NDB ID  Structure Title  Citation Title     Abstract
1ET4    1ET4    Structure of     Solution structure Research was performed and 
                haemoglobin mRNA of mRNA aptamer    structure of mRNa was obtained
                aptamer.

我的最终目标是显示给定关键字的输出,如下所示:

Keyword: mRNA
PDB ID   NDB ID   Structure Title   Citation Title   Abstract   Location of first hit
                                                                struc/citation/abstract

什么是我的起点?另外,我是否必须为此使用名为 Regex 的东西?

免责声明:这是研究项目的一部分,不是学校作业。

伪代码或模板对我来说很棒。

4

2 回答 2

2

您可以解析 CSV 文件并创建两个数据结构。两本词典。

一个字典将包含每一行,键入PDB ID. 另一个字典将存储PDB IDs 集并以关键字为关键字。

下面只是示例代码,因为我忽略了标题。您可能想正确解析 csv...

from collections import defaultdict
entries = {}
keywords = defaultdict(set)

with open('my_csv.csv') as f:
    for line in f:
        entries[line.split()[0]] = line  # so keying on the PDB ID

with open('my_csv.csv') as f:
    for line in f:
        for kw in line.split()[1:]
            keywords[kw].add(line.split()[0])

一旦你有了这两个数据结构,在关键字字典中查找关键字、迭代集合并打印出具有相关 PDB id 的每一行应该是微不足道的。

于 2013-07-17T13:46:09.083 回答
0

没有办法查看正则表达式。试试下面的库http://docs.python.org/2/library/csv.html 你也可以通过在谷歌上输入“csv python”来找到它。

里面有很多例子。

于 2013-07-17T13:43:42.900 回答