python删除txt指定内容_使用Python删除文本文件中的部分内容 | 学步园

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

7

00:01:44,789 --> 00:01:51,019

片名:当幸福来敲门 / 追求幸福

8

00:02:49,469 --> 00:02:52,839

马上来了

Should be here soon.

9

00:03:38,819 --> 00:03:41,189

- 我想我该列个表 - 干嘛?

-I think I should make a list. -What do mean?

10

00:03:41,189 --> 00:03:43,789

- 想要的生日礼物? - 对呀

-For your birthday gifts? -Yeah.

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

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

完成后的代码如下:

# -*- coding: utf-8 -*-

# code=cp936

import string, re

title_txt = open('I://pursuit_for_happiness(ch).txt', 'r+')

try:

full_txt = title_txt.readlines()

regex1 = "/A/d*[/n]/Z"

regex2 = "/d --> /d"

#print full_txt

new_txt = []

for line in full_txt:

#print line

if re.match(regex1, line) or re.search(regex2, line):

#print "match", line

continue

else:

new_txt.append(line)

title_txt.seek(0)

title_txt.truncate(0)

#for line in full_txt:

# title_txt.writelines(line)

title_txt.writelines(new_txt)

finally:

title_txt.close()

print "Over"

过程中遇到一个问题:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电信计算机知识考试,2020中国电信考试试题——专业知识一

1、我国对独立型STP设备要求其信令链路数不得小于( )A、7000MSU/s;B、10000MSU/s;C、14000MSU/s;D、20000MSU/s2、GSM的多址方式为( )A、FDMA; B、TDMA; C、CDMA; D、FDMA-TDMA混合技术3、以下属于被叫控制…

vue实现进度条隐藏_实现带有进度条的Vue延迟加载

下面Vue.js栏目给大家介绍一下给Vue的惰性加载添加进度条的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简介通常用 Vue.js 编写单页应用(SPA)时,当加载页面时,所有必需的资源(如 JavaScript 和 CSS 文…

full outer join 与full join的区别_sleep、yield、join都是干啥的? sleep与wait有啥区别?中篇[十五]...

点击上方 “ 布衣码农 ” ,免费订阅~选择“ 设为星标 ”,第一时间免费获得更新~「布衣码农」用不到却又不得不学习了解的底层方法1。Object中的wait、notify、notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等…

npu算力如何计算_异构计算神器来了,它能带来性能革命吗

前言:优化差有多要命?3A大作告诉您说到最近游戏圈子里的热门话题,刚刚在全平台上线的某“国产3A大作”显然绝对值得一提。一方面来说,靠着“抽卡化单机游戏”的设计,以及投入几十万元都难以实现全角色满状态的高氪金程…

四川大学计算机专业贵州分数线,四川大学2016年在贵州省高考各专业录取分数线...

四川大学2016年在贵州各专业录取分数线省份 科类 录取专业 录取最高分 录取最低分 录取平均分贵州 文科 旅游管理类 640 639 639.5贵州 文科 历史学类 641 636 639贵州 文科 新闻传播学类 645 639 641.33贵州 文科 信息资源管理 640 637 638.5贵州 文…

画股票图csdn_这个股票今天是要弄啥?

点击上方蓝色字体,关注我们作者 | 四叶草编辑 | 易小投大盘点评今天市场上午走势相对弱势,盘中只有杀出一点点急跌的恐慌盘,有一些盘中的做T机会,但是确定性不是特别高,毕竟盘中的急跌相对幅度有限。下午指数随着一些概…

python创建字符串数组_如何创建任意长度字符串的numpy数组?

您可以通过创建dtype object数组来完成此操作.如果您尝试将长字符串分配给普通的numpy数组,它会截断字符串: >>> a numpy.array([apples, foobar, cowboy]) >>> a[2] bananas >>> a array([apples, foobar, banana], dtype|S6) 但是当…

淮阴工学院计算机学院机房,实验室开放

计算机工程实验中心坚持每天14小时开放(7:30-21:30),在完成基础和专业等实验教学任务外,还承担了各级各类培训及考试、计算机技能实训、工程设计与开发等任务,同事开展了多种形式的社会服务,以及对周边学校的服务。本中心每天坚持…

照片识别出错_云投诉丨四川德阳市民文明手册咋满篇乱码?回应:电脑识别问题,已全部收回...

封面新闻记者 王攀 王祥龙“这是密码吗?”9月23日,有四川德阳市民反映,该市发放的《德阳市民文明手册》看不懂。从市民提供的照片上看,手册内页上全是乱码。当前,德阳市正争创全国文明城市,有市民表示&…

websocket中发生数据丢失_获取使用关闭代码1006关闭websocket的原因

关闭代码1006是一种特殊的代码,它表示浏览器实现异常(本地)关闭了连接。如果您的浏览器客户端报告关闭代码1006,那么您应该在websocket.onerror(evt)事件中查看详细信息。但是,Chrome很少会向JavaScript端报告任何接近代码1006的原因。这可能…

好身材大姐姐学计算机惊喜用英语,英语作文:一个大大的惊喜A Big Surprise

英语作文:一个大大的惊喜A Big Surprise在日常学习、工作或生活中,大家一定都接触过作文吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。那么,怎么去写作文呢&#x…

2篇word文档比较重复率_本科论文写作重复率高的原因,毕业论文降重技巧总结!...

论文重复率的问题,是大学高等院校都比较关心的一点,大学生在论文写完以后,都要经过知网论文检测,在查看重复报告的时候,无法直视,因为论文重复率提高啦。经过几次论文降重修改还是没法降低论文重复率。那么…

如何做电脑桌面应用_CAD批量转PDF?一分钟教会你CAD如何转PDF,两种方法任你选择!...

作为从事CAD设计的我,已经深深的了解到了CAD设计行业的辛苦。dwg格式的文件作为CAD文件格式常见的专业格式,它能够很好的帮助我们保存好绘制好的CAD图纸。现在几乎在很多领域都可以见到,有的时候会根据需要对CAD图纸进行格式转换。很多的网友…

转本计算机考试题目,2011江苏专转本计算机考试模拟试题答案

一、单选题1、上网访问网站, 就是访问存放在__?__上的相关文件。A、Web服务器B、路由器C、网关D、网桥参考答案A2、在软件的分层中,直接与用户、硬件打交道的是__?__。A、应用软件B、网络通信软件C、操作系统D、语言处理软件参考答案C3、某显示器的分辨…

添加列属性_css多列属性

多列属性多列布局类似报纸或杂志中的排版方式,主要用以控制大篇幅文本。1、column-count : 分隔列数说明:属性规定元素应该被分隔的列数用于:除table外的非替换块级元素, table cells, inline-block元素2、column-gap : 设置列与列…

pyautogui typewrite_解放双手:Pyautogui帮你work

今天介绍一个很有用的python库——Pyautogui,它可以通过屏幕的xy坐标系统来确定目标位置,进而控制鼠标和键盘发送虚拟的点击和输入任务。这对于你要完成机械重复枯燥的电脑操作来说非常地方便。安装Pyautogui库很简单,命令窗口输入&#xff1…

win7 右键计算机 服务 设备管理器,win7系统计算机右键菜单添加设备管理器的操作方法...

今天和大家分享一下关于对win7系统计算机右键菜单添加设备管理器设置的方法,在使用win7系统的过程中经常不知道如何去对win7系统计算机右键菜单添加设备管理器进行设置,有什么好的办法去设置win7系统计算机右键菜单添加设备管理器呢?在这里小…

年月跨度_不畏困难,砥砺前行 ——国内最大跨度管桁架工程成功首滑

8月3日下午,由陕建机施(江苏)第二总部第一工程公司承建的330米大跨度管桁架工程——芜湖新兴铸管综合料场封闭工程顺利实现首跨滑移,创下国内最大跨度管桁架工程滑移记录。该工程包含一个管桁架主体大棚结构,两个东西毗屋网架附属结构以及一个…

python 定时器_python定时器apscheduler及一个django的小tips

类似于windows系统里的计划任务,需要按特定的时间周期,去调度执行一项任务。python里有apscheduler组件。分有阻塞式与非阻塞式,如下是阻塞式,就是不需要自己去写循环。from apscheduler.schedulers.background import BlockingSc…

计算机原理 逻辑单元,湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

《湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告》由会员分享,可在线阅读,更多相关《湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告(6页珍藏版)》请在人人文库网上搜索。1、计算机原理与设计实验报告实验一 算术逻辑单元ALU姓名:…