1 回答
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
這段代碼可以滿足您的需求:
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)
引用所有單元格是通過(guò)傳遞csv.QUOTE_ALL作為作者的“引用”參數(shù)來(lái)處理的。
線路
fixed = [cell.replace('\n', '') for cell in row]
創(chuàng)建一個(gè)新的單元格列表,其中嵌入的'\n'字符被空字符串替換。
默認(rèn)情況下,Python 會(huì)將行尾設(shè)置為平臺(tái)的默認(rèn)值。如果您想覆蓋它,您可以將行終止符參數(shù)傳遞給編寫(xiě)器。
對(duì)我來(lái)說(shuō),原始的 csv 看起來(lái)很好:在引用的單元格內(nèi)嵌入換行符(“軟換行符”)是正常的,并且 csv 感知應(yīng)用程序應(yīng)該像電子表格一樣正確處理它們。然而,它們?cè)诓焕斫?csv 格式的應(yīng)用程序中看起來(lái)會(huì)是錯(cuò)誤的,因此將嵌入的換行符視為實(shí)際的行尾字符。
添加回答
舉報(bào)
