如何用python解析tsv文件?

s_z*_*ang 3 python csv

我有一个tsv文件,其中包含一些换行数据.

111 222 333 "aaa"
444 555 666 "bb
b"
Run Code Online (Sandbox Code Playgroud)

这里b的第三行是bb第二行的换行符,因此它们是一个数据:

第一行的第四个值:

aaa
Run Code Online (Sandbox Code Playgroud)

第二行的第四个值:

bb
b
Run Code Online (Sandbox Code Playgroud)

如果我使用Ctrl + C和Ctrl + V粘贴到excel文件,它运行良好.但是,如果我想使用python导入文件,如何解析?

我试过了:

lines = [line.rstrip() for line in open(file.tsv)]
for i in range(len(lines)):
    value = re.split(r'\t', lines[i]))
Run Code Online (Sandbox Code Playgroud)

但结果并不好:

在此输入图像描述

我想要:

在此输入图像描述

Ser*_*sta 12

只需使用csv模块.它知道CSV文件中的所有可能的极端情况,例如引用字段中的新行.

with open("file.tsv") as fd:
    rd = csv.reader(fd, delimiter="\t", quotechar='"')
    for row in rd:
        print(row)
Run Code Online (Sandbox Code Playgroud)

将正确输出:

['111', '222', '333', 'aaa']
['444', '555', '666', 'bb\nb']
Run Code Online (Sandbox Code Playgroud)


erp*_*ing 6

import pandas as pd
data = pd.read_csv ("file.tsv", sep = '\t')
Run Code Online (Sandbox Code Playgroud)

  • 还值得一提的是,如果文件中没有标题,请添加 header=None 否则它可能会使用第一行作为标题 (2认同)