前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python写入csv出现空白行,如何解决?

Python写入csv出现空白行,如何解决?

原创
作者头像
虫无涯
发布2023-01-31 11:02:18
发布2023-01-31 11:02:18
1.1K00
代码可运行
举报
文章被收录于专栏:全栈测试技术全栈测试技术
运行总次数:0
代码可运行

自己平时其实也很少用到csv,今天有个特殊需求,也就不得不用了。但是出现了空白行。

改前代码

代码语言:python
代码运行次数:0
运行
复制
    with open(zentao_file, 'w', encoding='utf8') as f:
        writer = csv.writer(f)
        writer.writerows(zentao_testcase_rows)
        logging.info('Convert XMind file(%s) to a zentao csv file(%s) successfully!', xmind_file, zentao_file)
    return zentao_file

现象

在这里插入图片描述
在这里插入图片描述

问题分析

1、查看打开mode的源码看看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、分析

其实大概意思就是:

w是以文本方式打开文件,wb是二进制方式打开文件,以文本方式打开文件时,fwrite函数每碰到一个0x0A时,就在它的前面加入0x0D.其它内容不做添加操作。所以换成wb

3、运行结果:

这是逗我呢,如下

在这里插入图片描述
在这里插入图片描述

4、再分析:

看上边的意思应该是要去掉encoding,那就去掉吧,结果是还是报错,其实原则上是已经OK了,只是我的代码中间做了一些格式转换可能导致问题,那要修改大量代码,算了,再看看其他的方法

在这里插入图片描述
在这里插入图片描述

改后代码

经过查阅资料,只需要在打开的的最后加上newline=''就可以了,试试吧

代码语言:python
代码运行次数:0
运行
复制
 with open(zentao_file, 'w', encoding='utf8', newline='') as f:
        writer = csv.writer(f)
        writer.writerows(zentao_testcase_rows)
        logging.info('Convert XMind file(%s) to a zentao csv file(%s) successfully!', xmind_file, zentao_file)

    return zentao_file

好了,空白行没有了,哈哈

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 改前代码
  • 现象
  • 问题分析
  • 改后代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档