Python检查-查找文件中最后一次出现的关键字匹配,然后检查正则表达式

Python检查-查找文件中最后一次出现的关键字匹配,然后检查正则表达式,python,Python,我有一个文本文件: flower.txt 文件中的内容: flower white flower red flower green flower blue Have some other text to the end of file. 我想grep行,这是单词“flower”的最后一次出现,并验证行是否为“flower blue” 不确定哪个函数有助于执行此操作 import re with open('flower.txt', "r") as f: re.findhelp 给你: wi

我有一个文本文件: flower.txt

文件中的内容:

flower white
flower red
flower green
flower blue
Have some other text to the end of file.
我想grep行,这是单词“flower”的最后一次出现,并验证行是否为“flower blue”

不确定哪个函数有助于执行此操作

import re

with open('flower.txt', "r") as f:
re.find
help

给你:

with open('temp.txt','w') as f:
    f.write('''\
flower white
flower red
flower green
flower blue
Have some other text to the end of file.''')

with open('temp.txt') as f:
    flowerlines = [i.strip() for i in f.readlines() if i.startswith('flower')]

if flowerlines:
    print(flowerlines[-1] == 'flower blue')
else:
    print('No flowers found.')
或者你可以这样说:

searchW = 'flower blue'
with open('temp.txt') as f:
    flowerlines = next((i == searchW  for i in f.read().split('\n')[::-1] 
                        if i.startswith('flower')),'No flowers')
    print(flowerlines)


如果您需要对此进行优化(很可能您不应该这样做),您可以查看以下内容:

在文件中循环,如果该行与
flower
匹配,则将其分配给变量。在循环结束时,变量包含最后出现的
flower
。然后,您可以测试它是否匹配
花蓝色
。无需使用regexp<代码>“flower”在第行中会告诉你单词是否在那里。你能帮我做一下循环吗,我做不到。@SaiKiran你在问谁?@SaiKiran展示你做了什么,然后我们可以帮你修复它。这就是你学得更好的方法。太好了。谢谢,但是如果我在flower blue之后看到任何flower关键字,代码应该会失败。但上面这句话仍然是对的。@SaiKiran你是什么意思?此代码应该读取所有行,并且只保存以flower开头的行。在这之后,它采取最后一行,并检查是否是花蓝色(打印为真)。如果它不是花蓝色(打印错误),如果没有花。。。不打印花。我的意思是,如果我有另一行在文件末尾显示花黄色,它应该失败。最后一个应该始终是花蓝色。@SaiKiran是的,如果是花黄色,它将失败。我们用花蓝来验证它,但仍然很困惑。但我们将努力获得准确的输出。