我一直在解析一个日志文件并仅使用print对其进行处理。我已经工作了,但是我不知道如何将其写入文件而不是将其打印到屏幕上。
我尝试打开输出文件o进行写入,然后打开以下正则表达式
matched = re.search(r"(http|https)://(.*?)./+", line)
o.write(matched)
它引发错误,它必须是.write参数的字符串对象。我也尝试过o.write(matched(1),line)
,但这只能让我获得http。我是新手,如果这只是一个简单的问题,我们深感抱歉。但是我对此一无所知,不知道从哪里开始。
答案 0 :(得分:0)
这里是documentation for Match objects,其中一个功能提及您想要的内容:
Match.group([group1, ...])
返回匹配项的一个或多个子组。如果有单个参数,则结果为单个字符串;如果有多个参数,则结果是一个元组,每个参数有一个项目。如果没有参数,则group1默认为零(将返回整个匹配项)。 [...]
这是一个可运行的示例:
import re
line = "Some text with https://www.example.com/ in it"
matched = re.search(r"(http|https)://(.*?)./+", line)
with open("file.txt", "w") as o:
o.write(matched.group())
结果为:
$ python3 test.py; cat file.txt; echo
https://www.example.com/
$ python2 test.py; cat file.txt; echo
https://www.example.com/