值得离开的是,这是我学习 Python 的第二天,而且我对这门语言不是很专业。任何低水平且易于理解的建议将不胜感激。
我想在 python 的正则表达式中使用变量。我读过这个问题如何在正则表达式中使用变量?没有任何运气的答案。
Code:
import time
import re
dia = time.strftime('%b %d')
final = open('/root/final.txt', 'ab')
file = open('/var/log/syslog', 'rb')
for line in file:
if re.findall('kernel|\bNetworkManager\b', line):
if re.findall(r'dia', line):
final.write(line)
有很多代码我认为与该问题无关。
我也尝试过这个解决方案if re.findall(r'%s'%dia, line)
没有幸运。
既然我在这里,我想解释一下我的想法,看看我的方向是否正确:
- 打开系统日志
- 查找单词 kernel 和 NetworkManager
- 如果该行的开头是今天,则写入final。
提前致谢。祝您度过美好的一年。
您不能引用字符串中的变量。字符串只是文本,它不知道名称空间,并且解释器不会为其解析名称空间。
由于你的变量dia
是一个字符串,您可以在调用中使用它re.findall
:
if re.findall(dia, line):
pass
或类似的东西:
if re.findall(r"{0}".format(dia), line):
pass
至于您正在做的事情的正确性,如果日志上时间戳的格式与您正在使用的相同,那么它应该是正确的。
编辑:如果您正在从日志中读取字符串,则不需要(或不应该)将它们作为二进制文件打开,即b
flag
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)