python输出结果空格分割_用Python编写固定宽度,以空格分隔的CSV输出

我想使用Python的csv编写器编写一个固定宽度,空格分隔和最小引用的CSV文件.

输出示例:

item1 item2

"next item1" "next item2"

anotheritem1 anotheritem2

如果我用

writer.writerow( (“{0:15s}”.format(item1), “{0:15s}”.format(item2)) )

然后,使用空格定界符,由于项目格式的尾部空格而添加引号或转义符(取决于csv.QUOTE_ *常数),导致格式被破坏:

"item1 " "item2 "

"next item1 " "next item2 "

"anotheritem1 " "anotheritem2 "

当然,我可以自己格式化所有内容:

writer.writerow( (“{0:15s}{1:15s}”.format(item1, item2)) )

但是使用csv编写器没有太多意义.另外,当项目中嵌入空格并且应使用引号/转义符时,我将不得不手动进行整理.换句话说,似乎我需要一个(不存在)“ QUOTE_ABSOLUTELYMINIMAL” csv常量,该常量将充当“ QUOTE_MINIMAL”,但也将忽略尾随空格.

有没有一种方法可以实现“ QUOTE_ABSOLUTELYMINIMAL”行为,或者有其他方法可以使用Python的CSV模块获取固定宽度,以空格分隔的CSV输出?

我想要CSV文件中的固定宽度功能的原因是更好的可读性.因此,它会以CSV格式进行读取和写入,但由于采用了列结构,因此可读性更好.读取不是问题,因为csv skipinitialspace选项可以忽略多余的空格.令我惊讶的是,写作似乎是一个问题.

编辑:我得出结论,用当前的csv插件无法实现.它不是一个内置选项,我看不到任何合理的方式来手动实现它,因为似乎没有办法由Python的csv编写器编写额外的定界符而不引用或转义它们.因此,我可能必须编写自己的csv编写器.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值