append可以换行吗python_在用Python解析的csv文件中处理额外的换行符(回车)?

假设您有这个Excel电子表格:

注:C2中的多行细胞

在C1和D3中嵌入逗号

空白单元格和D4中有空格的单元格。

将其保存为Excel中的CSV,您将得到此CSV文件:A1,B1,"C1,+comma",D1

,B2,"line 1

line 2",D2

,,C3,"D3,+comma"

,,,D4 space

假定,您希望将其读入Python中,其中空白单元格仍然具有含义,并且正确地嵌入内嵌逗号。

所以,这个:with open("test.csv", 'rU') as csvIN:

outCSV=(line for line in csv.reader(csvIN, dialect='excel'))

for row in outCSV:

print("Length: ", len(row), row)

正确生成Excel中表示的4x4列表矩阵:Length: 4 ['A1', 'B1', 'C1,+comma', 'D1']

Length: 4 ['', 'B2', 'line 1\nline 2', 'D2']

Length: 4 ['', '', 'C3', 'D3,+comma']

Length: 4 ['', '', '', 'D4 space']

您发布的示例CSV文件在字段周围缺少引号,并且有一个“额外的换行符”表示该换行符的含义不明确。是新行还是多行字段?

因此,您只能解释此csv文件:A, B, C, D, E, F

123, 456, tree

, very, bla, indigo

像这样的一维列表:with open("test.csv", 'rU') as csvIN:

outCSV=[field.strip() for row in csv.reader(csvIN, delimiter=',')

for field in row if field]

它产生了这个一维列表:['A', 'B', 'C', 'D', 'E', 'F', '123', '456', 'tree', 'very', 'bla', 'indigo']

然后,可以根据需要将其解释并重新组合为任何子组。

python中惯用的重新组合方法使用zip,如下所示:>>> zip(*[iter(outCSV)]*6)

[('A', 'B', 'C', 'D', 'E', 'F'), ('123', '456', 'tree', 'very', 'bla', 'indigo')]

或者,如果您想要一个列表列表,这也是惯用的:>>> [outCSV[i:i+6] for i in range(0, len(outCSV),6)]

[['A', 'B', 'C', 'D', 'E', 'F'], ['123', '456', 'tree', 'very', 'bla', 'indigo']]

如果您可以更改CSV文件的创建方式,那么解释起来就不那么含糊不清了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值