现在的位置: 首页 > 综合 > 正文

使用Python删除文本文件中的部分内容

2013年09月19日 ⁄ 综合 ⁄ 共 1262字 ⁄ 字号 评论关闭

为了学习英语,我把从网上下载下来的电影转换成纯MP3文件,放到iTouch里去了,这样就可以直接练习听力了,另外把下载下来的字幕也放进去,听不懂的时候可以看,但有一个问题,网上载下来的字幕格式都如下所示:

 

如上,但存在两个问题:1、每一句前面都带有数字编号;2、带有时间戳;

 

我只想要里面的中英文文本,数字编号和时间戳都不需要。由于最近正在学习Python当然首先就想到了做个Python脚本来把时间戳和编号删掉。实现很简单,基本思路就是使用正则表达式匹配,把空行、纯数字行及带有“-->”的行删掉,然后再先回文本文件。

 

完成后的代码如下:

 

过程中遇到一个问题:

1、Python中没办法清空一个文件,乱看了一通,发现使用truncate()方法,传入参数为0时可以搞定。

2、开始的时候直接使用for遍历list中的元素,匹配到就删除,发现需要执行多次脚本才能删完,且有些还始终删不掉,最后终于搞明白了:使用for i in list:时,如果一匹配到就删除,则此时list中的元素会改变,进入循环的下一轮时不出问题才怪。造孽,花了近一个小时才把这个问题搞定了。于是重新定义了一个空链表new_txt,使用它来存储我要的字幕,循环完成后把new_txt写回文件。大功告成!

 

爽,拷到我的iTouch里,开始学习英语了!

抱歉!评论已关闭.