我有一个制表符分隔的文件,如下所示:
\>WB02 \t F27C8.1
IV \t B-9641
\>WB03 \t F07C3.7
\>WB04 \t F52H2.2
\>WB04 \t F52H2.2
\>WB05 \t T13A10.10
IV \t B-15643
IV \t B-11650
IV \t B-13649
使用python时,我希望将以“>;”开头的行中的信息与以“>;”开头的任何行中的信息配对。每次有一个“>;”行后跟一个非“>;”行时,我希望打印出“>;”行中的第2列值,后跟一个制表符,后跟非'>;'行的第2列值。例如:
^{pr2}$到目前为止,我已经写了一行一行读文件的脚本。我需要把整个文件都读入内存吗?输入文件不会超过大约30K行,总共大约10MB。在这之后,我假设我将以类似“对于每一行不以'>;'开头的行,从最近的前一行的第2列中获取值,并且以'>;'开头。如果有任何指向正确方向的指针,我会非常感激-这比我迄今为止所做的任何事情都要复杂一些(小步骤!)。在
跟踪以
'>'
开头的最后一行就足够了。您可以根据脚本对无效输入的鲁棒性进行调整:用法
^{pr2}$Output
当然,可以通过增量读取文件来完成此操作。您只需要保留一个变量来保存您看到的最后一行的值。所以,像这样:
您可以逐行处理文件,检查每行是否以“>;”开头。当遇到以“>;”开头的行时,请捕获第二列中的值。对于不以“>;”开头的行,可以输出上次捕获的值以及关联的子值。在
相关问题 更多 >
编程相关推荐