我有一个csv,其头(row [0])用空格分隔,但其余行中的内容用\ t分隔(许多单元格具有多个空格)。如何解析此csv?
答案 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"
reader = csv.reader(open(outputFileName, "r"), delimiter='\t')