1 回答

TA贡献1757条经验 获得超7个赞
这段代码可以满足您的需求:
with open('raw_data.csv', 'r', newline='') as inp, open('csv_data.csv', 'w') as out:
reader = csv.reader(inp, delimiter=',', quotechar='"')
writer = csv.writer(out, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
for row in reader:
fixed = [cell.replace('\n', '') for cell in row]
writer.writerow(fixed)
引用所有单元格是通过传递csv.QUOTE_ALL作为作者的“引用”参数来处理的。
线路
fixed = [cell.replace('\n', '') for cell in row]
创建一个新的单元格列表,其中嵌入的'\n'字符被空字符串替换。
默认情况下,Python 会将行尾设置为平台的默认值。如果您想覆盖它,您可以将行终止符参数传递给编写器。
对我来说,原始的 csv 看起来很好:在引用的单元格内嵌入换行符(“软换行符”)是正常的,并且 csv 感知应用程序应该像电子表格一样正确处理它们。然而,它们在不理解 csv 格式的应用程序中看起来会是错误的,因此将嵌入的换行符视为实际的行尾字符。
添加回答
举报