Python写入csv忽略逗号

时间:2016-09-06 14:13:59

标签: python csv

我正在写一个csv并且它运行良好,除了一些行在其名称中有逗号,当我写入csv时,这些逗号将字段抛出...如何写入csv并忽略行中的逗号

header = "Id, FACID, County, \n"
row = "{},{},{}\n".format(label2,facidcsv,County)
with open('example.csv', 'a') as wildcsv:
    if z==0:
        wildcsv.write(header)
        wildcsv.write(row)
    else:
         wildcsv.write(row)

1 个答案:

答案 0 :(得分:3)

从您写入行的每个字段中删除任何逗号,例如:

label2 = ''.join(label2.split(','))
facidcsv = ''.join(facidcsv.split(','))
County = ''.join(County.split(','))
row = "{},{},{}\n".format(label2,facidcsv,County)

广义以格式化具有任意数量字段的行:

def format_row(*fields):
    row = ''
    for field in fields:
        if row:
            row = row + ', ' + ''.join(field.split(','))
        else:
            row = ''.join(field.split(','))
    return row

label2 = 'label2, label2'
facidcsv = 'facidcsv'
county = 'county, county'
print(format_row(label2, facidcsv, county))
wildcsv.write(format_row(label2, facidcsv, county))

<强>输出

label2 label2, facidcsv, county county

正如@TomaszPlaskota和@quapka在评论中提到的那样,Python的csv writersreaders默认写入/读取包含带有周围{{1}的分隔符的csv字段}。大多数使用csv文件的应用程序遵循相同的格式。因此,如果要将逗号保留在输出字段中,则以下是首选方法:

'"'

<强> out.csv

import csv

label2 = 'label2, label2'
facidcsv = 'facidccv'
county = 'county, county'
with open('out.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow((label2, facidcsv, county))