如何在制表符分隔的.text文件中折叠类似的值? [关闭]

问题描述 投票:-1回答:1

假设我有一个制表符分隔的.text文件,如下所示:

enter image description here

我想折叠第1-5列,以便对于给定的唯一组合(即:abcde),与该唯一组合相关联的所有值(第6列;在这种情况下为组合abcde,相关值为f,g ,h)显示,而该唯一组合仅显示一次。

这是我想要完成的事情:

enter image description here

python脚本会是什么样的(如果可能的话)?

python grouping tab-delimited-text
1个回答
1
投票

使用Python的groupby函数来查找前5个单元格中的更改,如下所示:

from itertools import groupby
import csv

group = 5

with open('input.txt', 'rb') as f_input, open('output.txt', 'wb') as f_output:
    csv_input = csv.reader(f_input, delimiter='\t')
    csv_output = csv.writer(f_output, delimiter='\t')

    for k, g in groupby(csv_input, lambda x: x[:group]):
        csv_output.writerow(next(g))
        for row in g:
            csv_output.writerow([''] * group + row[group:])

给你一个输出文件:

a   b   c   d   e   f
                    f
                    g
                    h
1   2   3   4   5   z
                    y
                    t

注意:这假设您使用的是Python 2.x.

© www.soinside.com 2019 - 2024. All rights reserved.