文件读取输入上的Python正则表达式

时间:2011-05-18 16:35:47

标签: python regex

所以即时阅读这样的文件。

f = open("log.txt", 'w+r')
f.read()

所以f现在有一堆行,但我主要关心它有一个数字,然后是一个特定的字符串(例如“COMPLETE”将是字符串)

怎么样......你到底要检查一下吗? 我以为它会像:

r.search(['[0-9]*'+,"COMPLETE")

但这似乎不起作用?也许这是我的正则表达式错了(我非常可怕) 但基本上它只需要检查整个字符串(多行和包含数字的\ n(特别是200)和单词COMPLETE(在大写字母中)

编辑:这里的参考是日志文件的样子

Using https
Sending install data... DONE
200 COMPLETE
<?xml version="1.0" encoding="UTF-8"?>
<SolutionsRevision version="185"/>

我只需要确保它说“200”并完成

3 个答案:

答案 0 :(得分:5)

如果您只是寻找“200 COMPLETE”,那么正则表达式在这里是过度的。就这样做:

if "200 COMPLETE" in log:
    # Do something

答案 1 :(得分:1)

应该是

m = r.search('[0-9]+\s+COMPLETE',line)

答案 2 :(得分:1)

您应该使用Rafe's answer而不是正则表达式来搜索文件内容中的“200 COMPLETE”,但是当前代码无法使用"w+r"来读取文件,因为模式将截断你的档案。你需要做这样的事情:

f = open("log.txt", "r")
log = f.read()
if "200 COMPLETE" in log:
    # Do something