加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 匹配模式并打印下一行

发布时间:2020-12-20 13:11:14 所属栏目:Python 来源:网络整理
导读:我有一个包含某些规则的文本文件.这是格式: :SchoolName (rule_1)):xyz (true):abc_efg ( : xxyyzz-x1y1-z1z2-z3z4) 我想匹配’:abc_efg’并在比赛结束后得到一条线,即 ‘:xxyyzz-x1y1-z1z2-z3z4’ 每次有新文件时,它会查找’:abc_efg’并在匹配后获得相
我有一个包含某些规则的文本文件.这是格式:

:SchoolName (rule_1)
)
:xyz (true)
:abc_efg (
    : xxyyzz-x1y1-z1z2-z3z4
)

>我想匹配’:abc_efg’并在比赛结束后得到一条线,即
‘:xxyyzz-x1y1-z1z2-z3z4’
>每次有新文件时,它会查找’:abc_efg’并在匹配后获得相应的行

到目前为止我已经尝试过

with open('G:CMPython ExercisesProject_Fabc.txt') as f:
    text = f.read()
    list1=text.strip('nt').split(':')
    print list1
    for line in list1:
        if ':abc_efg' in list1:
            print line
            print 'n'.join(list1[i+1])

print list1显示

[':abc_efg (nttt',': xxyyzz-x1y1-z1z2-z3z4 ntt)ntt']

解决方法

使用f.readline()逐行读取文件.

当匹配时,它可以很容易地获得下一行.

with open('abc.txt') as f:
    a = ' '
    while(a):
        a = f.readline()
        l = a.find(':abc_efg') #Gives a non-negative value when there is a match
        if ( l >= 0 ):
            print f.readline()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读