如何使用Python将换行符写入csv作为'\n'?

2024-05-14 23:56:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要重新定义以下代码,以便行数据中的任何换行符(将显示为空行)在写入的文件中显示为'\n'

但是,'\n'需要在每行之后写入,才能显示为空行。

显然,每一行都需要编码为“utf-8”以避免错误。

with open('csvfile.csv', 'w') as csvOutput:
    testData = csv.writer(csvOutput, delimiter='|', escapechar=' ', quoting=csv.QUOTE_NONE)

    for row in data:
        newRow = [row[x].encode('utf-8') for x in xrange(len(row))]
        testData.writerow(newRow)
        testData.writerow(['\n'])

Tags: 文件csv数据代码in编码for定义
2条回答

我猜这是因为\是Python中的转义字符。\\被解释为实际的\字符串。所以你的代码应该如下:

with open('csvfile.csv', 'w') as csvOutput:

    testData = csv.writer(csvOutput, delimiter='|', escapechar=' ', quoting = csv.QUOTE_NONE)


    for row in data:
        newRow = [row[x].encode('utf-8') for x in xrange(len(row))]
        testData.writerow(newRow)
        testData.writerow('\\n') #Note the final row with \\

您需要使用^{} method手动将换行符替换为\n

^{}选项设置为所需的字符序列。有关其他可用信息,请参见the docs

with open('csvfile.csv', 'w') as csvOutput:
    writer = csv.writer(csvOutput, delimiter='|', escapechar=' ', quoting=csv.QUOTE_NONE, lineterminator='\n')

    for row in data:
        writer.writerow([s.replace('\n', '\\n').encode('utf-8') for s in row])

相关问题 更多 >

    热门问题