python提取txt文件每一行中的特定字符内容,并写入文件
import re #这里以读取video_reqtest.txt中后一个括号内的数字0.079,存到train.txt为例,video_reqtest.txt文件中的内容如下 #video 1/1 (1/902) /content/drive/MyDrive/yolov5-5.0/mydata/barbecue.mp4: 384x640 1 fire, Done. (0.079s) #video 1/1 (2/902) /content/drive/MyDrive/yolov5-5.0/mydata/barbecue.mp4: 384x640 1 fire, Done. (0.015s) #video 1/1 (3/902) /content/drive/MyDrive/yolov5-5.0/mydata/barbecue.mp4: 384x640 1 fire, Done. (0.015s) # 读取文件的每一行 read_txt = open("video_reqtest.txt", "r",encoding="utf-8") #定义一个空列表用于接收提取出来的内容 temp = [] for line in read_txt: a = re.findall(r'[(](.*?)[)]', line) #读出一行中()内的值,用到是python的正则表达式,不懂。。。如 abbc(0.1s) ,读出为 0.1s ''' print(a) 输出结果: ['1/902', '0.079s'] ['2/902', '0.015s'] ['3/902', '0.015s'] 要提取的内容在列表的第二个索引中,再去掉a[1]中的s ''' b = re.findall(r'(.*?)[s]', a[1]) #按上面的方法把s去掉 ''' print(b) 输出结果: ['0.079'] ['0.015'] ['0.015'] 要提取的内容在列表的第一个索引中,注意不是列表b呦。。。 ''' temp.append((b[0])) #添加到临时列表中 ''' print(temp) 输出内容: ['0.079'] ['0.079', '0.015'] ['0.079', '0.015', '0.015'] 循环一次添加一个,最后得到我们要的列表。。。。 对一个python小白来说搞到这里好艰难,参考网友的内容,一点点的搞出来了。。。。。 还有最后一步,保存到文件。。。 ''' #写入到文件 with open("train.txt","w",encoding='utf-8') as file: for i in temp: file.write(i+'\n') file.close() '''trian文件内容''' #0.079 #0.015 #0.015 #于2022-05-15
ps:python中open读写模式的参数:
要了解文件读写模式,需要了解几种模式的区别,以及对应指针
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别于r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)