如何用Python脚本筛选tsv文件列相同值的行,并将其储存为新的tsv文件

针对data.tsv文件,将第一列相同基因ID对应的第二列数据合并成out.tsv文件
下图一是data.tsv文件的部分内容,图二是out.tsv文件的部分内容,
求问如何在脚本中指定文件的列内容数和筛选,还有就是筛选后如何如何储存新文件

img

img

  将tsv文本数据中的数据以字典的方式统计,最后写入out.tsv。

  • *.tsv文本数据及代码执行后输出的out.tsv文本内容

    img

  • python 代码

#!/sur/bin/nve python
# coding: utf-8
from random import choices
from random import sample


mypath = '/sdcard/001/'
keys = 'ABC'
chars = 'abcdefghigklmnopqrstuvwxyz'

with open(f"{mypath}test.tsv", 'w') as f: # 随机写入tsv文本18行
    for i in range(18):
        f.write(f"{''.join(sample(keys, k=2))}{' '*4}{''.join(choices(chars, k=4))}\n")

count = {}
for line in open(f"{mypath}test.tsv").read().split('\n'):
    
    if not line:
        break
        
    a, b = line.split()
    lis = count.get(a, [])
    lis.append(b)
    count[a] = lis


with open(f"{mypath}out.tsv", 'w') as f: # 统计数据写入文本。
    
    for k,v in count.items():
        f.write(f"{k}{' '*4}{';'.join(v)}\n")