为了学习英语,我把从网上下载下来的电影转换成纯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里,开始学习英语了!

python删除文件部分内容_使用Python删除文本文件中的部分内容相关推荐

  1. python打印文件到字符串_如果字符串在文本文件中,如何签入Python并打印行?

    你应该试试这样的:import re def check_string(): #no need to pass arguments to function if you're not using th ...

  2. python读写文件的语句_用Python读写文件指南

    用Python读写文件(指南) [TOC] 使用Python最常见的任务之一是读取和写入文件.无论是写入简单的文本文件,读取复杂的服务器日志,甚至是分析原始字节数据,所有这些情况都需要读取或写入文件. ...

  3. python计算文件md5值_用python计算文件的MD5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

  4. python计算文件md5值_用python 正确计算大文件md5 值

    python 计算文件的md5值很方便,但如果只是简单的把文件都入到内存中,大文件会导致问题,一般采用切片的方式分段计算,下面的几个函数可以很好的解决这个问题. 使用 hashlib import h ...

  5. python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名

    有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到"哔哩哔哩"网站(俗称 B 站)找视频教程看看.要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地 ...

  6. python返回文件行号_用python比较两个文件中内容的不同之处, 并输出行号和内容....

    '''cmpfile.py - 比对两个文件, 如果有不同之处, 打印内容和行号''' import os class cmpFile: def __init__(self, file1, file2 ...

  7. python下载文件进度图表_【python 】文件下载进度条(装逼利器)

    原博文 2020-04-23 11:19 − 基础版 import requests url = "http://mp.111ttt.cn/mp3free/81135985.mp3" ...

  8. python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...

    对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...

  9. python 拷贝文件创建目录失败_解决python os.mkdir创建目录失败的问题

    起因 今天使用 python os.mkdir创建目录时遇到的一个小问题: feature_dir = os.path.join(os.getcwd(), 'system', 'feature') i ...

  10. python读取文件编码错误_关于python 读取txt文件出现编码问题:

    python 读取txt文件出现编码问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 5: invalid ...

最新文章

  1. python实现卡方(Chi-Squared Test)相关性检验
  2. (发现)问题才是推动创新的动力系列:两种类型硬币(均匀和非均匀)能否用第一次得正面朝上的概率推断“第一第二次依次获得正面反面情况”的概率?
  3. 支付系统整体设计:整体架构设计以及注意要点(一)
  4. java面试spring_针对Java程序员的二十大Spring REST面试问题答案
  5. sysfs接口函数的建立_DEVICE_ATTR
  6. 未转变者服务器未正常运行,未转变者Battleye服务不能正常运行 | 手游网游页游攻略大全...
  7. accounts/login/?next=/account/password-change/
  8. linux: kill -9
  9. SpringMVC4 + Spring + MyBatis3 【转】
  10. C++开源日志库选择
  11. 《东周列国志》第五十四回 荀林父纵属亡师 孟侏儒托优悟主
  12. 正则表达式,和python re模块
  13. 计算广告4——用户增长
  14. ElectronBot支线项目
  15. 【Win10 UWP】微信SDK基本使用方法和基本原理
  16. 程序员深思语,导师语录
  17. Docker学习(四):Dockerfile
  18. 全球网脑系列丛书找出版合作
  19. java获取首字母字符串首字母
  20. 深度学习是什么?深度学习和神经网络的区别是什么

热门文章

  1. 一分钟教你如何识别图片文字
  2. 支付宝员工因绩效3.25B被辞退,员工告上法院,结果来了!
  3. HC32L110国产超低功耗华大MCU芯片介绍
  4. 洛谷 P1629 - 邮递员送信(往返两遍dijkstra)
  5. SketchUp:解决修改不同模型背景天空颜色的问题图文教程
  6. Burpsuite抓包工具
  7. 慰问敬老院活动方案3
  8. 5g工业路由器的电梯远程监测管理应用
  9. 共享水域智能维护时代新机遇, 欧卡智舶城市合伙人招募正式启动
  10. 电能质量分析方法与控制技术探讨