在regex python中使用变量

2024-06-11 10:12:10 发布

您现在位置:Python中文网/ 问答频道 /正文

值得一提的是,这是我第二天使用Python,而且我对这种语言不是很在行。任何低水平和易于理解的建议将不胜感激。在

我想在python的regex中使用一个变量。我读了这个问题,但没有找到答案。在

代码:

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)

我认为有很多代码与这个问题无关。 我也尝试过这个解决方案,但没有幸运。在

既然我在这里,我想解释一下我的想法,看看我的方向是否正确:

  1. 打开系统日志
  2. 查找kernel和NetworkManager一词
  3. 如果这行的开头是今天写的最后一行。在

提前谢谢。祝你新年快乐。在


Tags: 代码importre语言iftimelineopen
1条回答
网友
1楼 · 发布于 2024-06-11 10:12:10

不能在字符串中引用变量。字符串只是文本,它不知道名称空间,解释器不会为它解析它。在

由于变量dia是一个字符串,因此可以在调用re.findall时使用它:

if re.findall(dia, line):
    pass

或者类似的东西:

^{pr2}$

至于你所做的事情的正确性,如果日志上的时间戳的格式与你使用的相同,那么它应该是正确的。在

编辑:如果从日志中读取字符串,则不需要(或不应该)以二进制形式打开它们,即b标志

相关问题 更多 >