csv.writer 带单引号

csv.writer with a single quote character

我有一行数据要写入 .tab 文件,如下所示:

row = ['07/19/2017/10/33/30', 'gg_ca_18" dishwashers_204454792491_1t1',
       Decimal('369.00'), 1L, '66745355']

我想让单引号不转义,这样它看起来像这样:

07/19/2017/10/33/30 gg_ca_18" dishwashers_204454792491_1t1  369.00  1   66745355

我正在使用以下代码写入文件:

with open(file_name, 'wb') as outfile:
        a = csv.writer(outfile, delimiter='\t') # ,escapechar=None, quoting=csv.QUOTE_NONE
        a.writerows(row)

我试过使用 escapechar=None, quoting=csv.QUOTE_NONE 和它的几种变体。我总是收到错误 Error: need to escape, but no escapechar set。不转义行中间单引号的最佳方法是什么?是否可以使用 csv 模块?

如果要转义字符,请使用\

在你的例子中,它将是 \"

您可以使用不同的 quotechar:

with open(file_name, 'w') as outfile:
    a = csv.writer(outfile, delimiter='\t', quotechar="'")
    a.writerow(row)

如果您不想转义任何内容,它就不再是 CSV 文件了。将每行项转换为字符串,将字符串拼接成一个字符串,写入文件:

line = ' '.join(map(str,row))
#'07/19/2017/10/33/30 gg_ca_18" dishwashers_204454792491_1t1 369.00 1 66745355'
outfile.write(line + "\n")