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

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值