python中的Regexpr

2024-09-24 06:24:58 发布

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

for printJobString in logfile:
    userRegex = re.search('(\suser:\s)(.+?)(\sprinter:\s)', printJobString)
    if userRegex:
        userString = userRegex.group(2)
        pagesInt = int(re.search('(\spages:\s)(.+?)(\scode:\s)', printJobString).group(2))

上面是我的代码,当我在模块中运行这个程序时

Traceback (most recent call last):
  File "C:\Users\brandon\Desktop\project3\project3\pages.py", line 45, in <module>
    log2hist("log")  # version 2.
  File "C:\Users\brandon\Desktop\project3\project3\pages.py", line 29, in log2hist
    pagesInt = int(re.search('(\spages:\s)(.+?)(\scode:\s)', printJobString).group(2))
AttributeError: 'NoneType' object has no attribute 'group'

我知道这个错误意味着搜索返回None,但我不确定如何处理这个问题。任何帮助将不胜感激,非常新的python和仍然学习的基础知识。你知道吗

我正在写一个程序,应该打印出用户的页数。 180.186.109.129代码:k n h用户:luis打印机:核心2页:32 是一个目标字符串,我的python文件试图创建一个数据文件,其中每个用户有一行,并且包含打印的总页数


Tags: 代码用户in程序researchgroupfile
1条回答
网友
1楼 · 发布于 2024-09-24 06:24:58

发生这种情况的原因是因为regexp没有找到任何内容,并且没有返回任何内容

re.search('(\spages:\s)(.+?)(\scode:\s)') returns None

在尝试分组之前,使用if语句测试它是否为None

for printJobString in logfile:
    userRegex = re.search('(\suser:\s)(.+?)(\sprinter:\s)', printJobString)
    if userRegex:
        userString = userRegex.group(2)
        pagesInt = re.search('(\spages:\s)(.+?)(\scode:\s)', printJobString)

        if pagesInt:
           pagesInt = int(pageInts.group(2))

相关问题 更多 >