我有一个分隔文件,其中某些字段包含行终止字符。它们可以是 LF 或 CR/LF。
行终止符导致记录分成多行。
我的目标是读取文件,删除行终止字符,然后写出一个在字段周围用引号引起来的分隔文件。
输入记录示例:
444,2018-04-06,19:43:47,43762485,"Request processed"CR\LF
555,2018-04-30,19:17:56,43762485,"Added further note:LF
email customer a receipt" CR\LF
第一个记录没问题,但第二个记录有 LF(换行),导致记录折叠。
import csv
with open(raw_data, 'r', newline='') as inp, open(csv_data, 'w') as out:
csvreader = csv.reader(inp, delimiter=',', quotechar='"')
for row in csvreader:
print(str(row))
out.write(str(row)[1:-1] + '\n')
我的代码几乎可以工作,但我认为它不正确。
我得到的输出是:
['444', '2020-04-06', '19:43:47', '344376882485', 'Request processed']
['555', '2020-04-30', '19:17:56', '344376882485', 'Added further note:\nemail customer a receipt']
我使用子字符串删除行开头和结尾处的方括号,我认为这不是正确的方法。请注意,第二条记录中的新行字符已转换为 \n。我想知道如何摆脱它,并将 csv 编写器合并到代码中以在字段周围放置双引号。
为了删除行终止符,我尝试更换但没有成功。
(row.replace('\r', '').replace('\n', '') for row in csvreader)
我还尝试合并一个 csv 编写器,但无法使其与列表一起使用。
任何意见,将不胜感激。
长风秋雁
相关分类