matlab删除txt空行,python除开matlab文件中的空行

今天研究snake算法的时候,从网上copy了一份源码下来,matlab的。准备好好研究一下,可惜copy下来的代码中存在大量的空行,如图所示:

170611300.jpg

过多的空行严重影响代码的可读性,于是就想到了用python来解决这个问题,去除文件中的空行,这里思路很简单,就是读取每行内容,判断是否为空行,将不是空行的内容写入到新的文本中去。

下面记录一下解决问题时候遇到的一些问题:

1.字符集问题:

由于我们的matlab保存m文件默认是gb2312格式的,在处理中文字符的时候,遇到各种编码字符集问题,通过查找资料发现,微软将gbk 和 gb2312 全部映射成了 gb18030 的编码格式,这是遇到的第一个坑。

2.删除空行的时候,我们一开始用的是

if line == '\r\n' or line = '\n'

continue

但发现只能去除一部分的空行,当有连着几行的空行的时候就无能为力了。

后来看到网上有人用 split(),经测试完美可行。神人啊 膜拜一下 6666666

最终处理效果如下:

170611301.jpg

下面放出源代码:

# ===========【python 去除指定文件中的空行】==============

# @ author : zhyh2010

# @ date : 20150608

# @ version : 1.0

# ===============【end of tip】=====================

fd = open('main.m', encoding = 'gb18030')

fd_conv = open('output.m', 'w', encoding = 'gb18030')

line = fd.readline()

print(line, end = '')

while line:

line = fd.readline()

if line.split():

fd_conv.writelines(line)

fd.close()

fd_conv.close()

是不是非常简洁,盗用实验室师兄一句话,python 大法好 啊

参考文章:

1.简明 Python 教程———–第5章 运算符与表达式

2.用Python删除文件中的空行

3.python 读取文本文件 删除里边的空行

4.python读取文件,打印有空行出现,如何解决

5.python如何识别文件中的空行

6.【已解决】python中文字符乱码(GB2312,GBK,GB18030相关的问题)

7.python逐行读取文件内容的三种方法

8.python读取文件小结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值