TSV到CSV转换Python

2024-10-01 13:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把这个换掉文件.tsv到csv 转换效果很好,但是字段的分离却不是 这是文件.tsv在

protein1 protein2 neighborhood neighborhood_transferred fusion cooccurence homology coexpression coexpression_transferred experiments experiments_transferred database database_transferred textmining textmining_transferred combined_score
9606.ENSP00000003084 9606.ENSP00000301645 0 0 0 0 0 0 0 0 0 0 0 163 129 239

这是第一行结果文件.csv在

^{pr2}$

这是密码

import csv


print(csv.list_dialects())


with open('File.tsv', 'r', encoding='utf-8', newline='') as fin, \
     open('file2.csv', 'w', encoding='utf-8', newline='') as fout: 

     reader = csv.reader(fin, dialect='excel-tab')
     writer = csv.writer(fout, delimiter=' ')    

     for row in reader:
         writer.writerow(row)

问题是,代码没有使用空格分隔字段,而是将整个标题保留为一行
期望的结果是分隔符应该放在逗号的地方 protein1,protein2,邻域,邻域转移,融合,协同同调,共表达,共表达转移,实验实验转移,数据库,数据库转移,文本挖掘,文本挖掘,组合得分 9606.ensp00000030849606.ensp0000301645,0,0,0,0,0,0,0,0,0,0163129239


Tags: 文件csvtsvopendatabaseencodingreaderwriter
1条回答
网友
1楼 · 发布于 2024-10-01 13:34:23

编辑:与OP交换意见后重写答案

输入被指定为输入中的制表符作为分隔符:

reader = csv.reader(fin, dialect='excel-tab')

但是没有标签,有空格,所以:

^{pr2}$

注意,这将把两个连续的空格视为两个分隔符,它们之间有一个空字段。不能像在Excel中那样指定忽略重复分隔符。在

相关问题 更多 >