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 code:k n h user:luis printer:core 2 pages:32 是一个目标字符串,我的python文件正在尝试创建一个数据文件,每个用户有一行,并包含打印的总页数
答案 0 :(得分:2)
它发生的原因是因为你的正则表达式找不到任何东西而且返回None
re.search('(\spages:\s)(.+?)(\scode:\s)') returns None
在尝试分组
之前,使用if语句测试它是否为Nonefor 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))