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+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾

posted @   今天天气好极了  阅读(1283)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示