Python写入csv忽略逗号

zig*_*ggy 3 python csv

我正在写入 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)
Run Code Online (Sandbox Code Playgroud)

Cra*_*ler 5

从写入该行的每个字段中删除所有逗号,例如:

label2 = ''.join(label2.split(','))
facidcsv = ''.join(facidcsv.split(','))
County = ''.join(County.split(','))
row = "{},{},{}\n".format(label2,facidcsv,County)
Run Code Online (Sandbox Code Playgroud)

概括为格式化具有任意数量字段的行:

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))
Run Code Online (Sandbox Code Playgroud)

输出

label2 label2, facidcsv, county county
Run Code Online (Sandbox Code Playgroud)

正如 @TomaszPlaskota 和 @quapka 在评论中提到的那样,Python 的csv writers默认readers写入/读取 csv 字段包含带有'"'. 大多数使用 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))
Run Code Online (Sandbox Code Playgroud)

输出.csv

"label2, label2",facidccv,"county, county"
Run Code Online (Sandbox Code Playgroud)