在python中使用多个分隔符解析csv

时间:2018-12-20 15:23:41

标签: python csv

我有一个csv,其头(row [0])用空格分隔,但其余行中的内容用\ t分隔(许多单元格具有多个空格)。如何解析此csv?

2 个答案:

答案 0 :(得分:0)

您可以像以前一样解析csv(全部内容),然后使用regex(正则表达式)保留或划分和分类所需的内容。

答案 1 :(得分:0)

首先,在Multiple delimiters in single CSV file中有一个与您的问题类似的问题应该对您有用

对于您的特定情况,您只需将第一行的定界符更改为\t

import csv
import os

inputFileName = "temp.csv"
outputFileName = os.path.splitext(inputFileName)[0] + "_modified.csv"

with open(inputFileName, 'r') as inFile, open(outputFileName, 'w') as outfile:
    r = csv.reader(inFile)
    w = csv.writer(outfile, delimiter='\t', quoting=csv.QUOTE_NONE, escapechar=' ')

    header = next(r)  # get header
    header = "\t".join(header[0].split())
    # write new header
    w.writerow(header)

    # copy the rest
    for row in r:
        w.writerow(row)

并使用此脚本创建一个仅包含一个定界符的新csv。

因此,接下来您可以使用定界符"\t"

打开新的csv。
reader = csv.reader(open(outputFileName, "r"),  delimiter='\t')