python删除文件部分内容_使用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里,开始学习英语了!
python删除文件部分内容_使用Python删除文本文件中的部分内容相关推荐
- python打印文件到字符串_如果字符串在文本文件中,如何签入Python并打印行?
你应该试试这样的:import re def check_string(): #no need to pass arguments to function if you're not using th ...
- python读写文件的语句_用Python读写文件指南
用Python读写文件(指南) [TOC] 使用Python最常见的任务之一是读取和写入文件.无论是写入简单的文本文件,读取复杂的服务器日志,甚至是分析原始字节数据,所有这些情况都需要读取或写入文件. ...
- python计算文件md5值_用python计算文件的MD5值
md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...
- python计算文件md5值_用python 正确计算大文件md5 值
python 计算文件的md5值很方便,但如果只是简单的把文件都入到内存中,大文件会导致问题,一般采用切片的方式分段计算,下面的几个函数可以很好的解决这个问题. 使用 hashlib import h ...
- python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名
有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到"哔哩哔哩"网站(俗称 B 站)找视频教程看看.要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地 ...
- python返回文件行号_用python比较两个文件中内容的不同之处, 并输出行号和内容....
'''cmpfile.py - 比对两个文件, 如果有不同之处, 打印内容和行号''' import os class cmpFile: def __init__(self, file1, file2 ...
- python下载文件进度图表_【python 】文件下载进度条(装逼利器)
原博文 2020-04-23 11:19 − 基础版 import requests url = "http://mp.111ttt.cn/mp3free/81135985.mp3" ...
- python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...
对HDFS 上的文件,采用绝对路径,来读取获得 RDD: In [102]: mydata=sc.textFile("file:/home/training/test.txt") ...
- python 拷贝文件创建目录失败_解决python os.mkdir创建目录失败的问题
起因 今天使用 python os.mkdir创建目录时遇到的一个小问题: feature_dir = os.path.join(os.getcwd(), 'system', 'feature') i ...
- python读取文件编码错误_关于python 读取txt文件出现编码问题:
python 读取txt文件出现编码问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 5: invalid ...
最新文章
- python实现卡方(Chi-Squared Test)相关性检验
- (发现)问题才是推动创新的动力系列:两种类型硬币(均匀和非均匀)能否用第一次得正面朝上的概率推断“第一第二次依次获得正面反面情况”的概率?
- 支付系统整体设计:整体架构设计以及注意要点(一)
- java面试spring_针对Java程序员的二十大Spring REST面试问题答案
- sysfs接口函数的建立_DEVICE_ATTR
- 未转变者服务器未正常运行,未转变者Battleye服务不能正常运行 | 手游网游页游攻略大全...
- accounts/login/?next=/account/password-change/
- linux: kill -9
- SpringMVC4 + Spring + MyBatis3 【转】
- C++开源日志库选择
- 《东周列国志》第五十四回 荀林父纵属亡师 孟侏儒托优悟主
- 正则表达式,和python re模块
- 计算广告4——用户增长
- ElectronBot支线项目
- 【Win10 UWP】微信SDK基本使用方法和基本原理
- 程序员深思语,导师语录
- Docker学习(四):Dockerfile
- 全球网脑系列丛书找出版合作
- java获取首字母字符串首字母
- 深度学习是什么?深度学习和神经网络的区别是什么