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

0 投票
3 回答
5761 浏览
提问于 2025-04-16 17:53

我正在从一个文件中读取内容,像这样。

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”和COMPLETE。

3 个回答

1

应该是像这样的内容:

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

如果你只是想找“200 COMPLETE”,那么用正则表达式就太复杂了。直接这样做就可以了:

if "200 COMPLETE" in log:
    # Do something
1

你应该参考Rafe的回答,而不是用正则表达式来查找文件内容中的“200 COMPLETE”。不过,你现在的代码在读取文件时会出问题,因为使用"w+r"这个模式会把你的文件内容清空。你需要这样做:

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

撰写回答