python去除matlab文件中的空行

来源:互联网 发布:网络发帖推广 编辑:程序博客网 时间:2024/05/01 07:05

今天研究snake算法的时候,从网上copy了一份源码下来,matlab的。准备好好研究一下,可惜copy下来的代码中存在大量的空行,如图所示:
这里写图片描述
过多的空行严重影响代码的可读性,于是就想到了用python来解决这个问题,去除文件中的空行,这里思路很简单,就是读取每行内容,判断是否为空行,将不是空行的内容写入到新的文本中去。

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

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

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

但发现只能去除一部分的空行,当有连着几行的空行的时候就无能为力了。
后来看到网上有人用 split(),经测试完美可行。神人啊 膜拜一下 6666666

最终处理效果如下:
这里写图片描述

下面放出源代码:

# ===========【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读取文件小结

0 0
原创粉丝点击