我无法让我的正则表达式在我的Python 3代码中按预期工作。
我正在尝试解析一个文件,找到一个特定的模式(确切的模式是Total Optimized)
我这样做是因为该文件可以包含说“”“Total Optimization(Active)”“”和其他排列的行。我试过以下几行。没有工作
PkOp = re.compile(r'Total Optimized\t\d')
PkOp = re.compile(r'Total Optimized\t\d')
PkOp = re.compile(r'Total Optimized\t[^(Active)]')
我的基本代码(此处简化)只打印匹配的行。如果我开始工作,我会选择我想要的数组项目,如
PkOp = PkOpArray[4]
App = re.compile(r'Appliance\s(Active)')
PkOp = re.compile(r"Total Optimized\t\d")
with open("SteelheadMetric2.txt","r") as f:
with open("mydumbfile.txt","w") as o:
for line in f:
line = line.lstrip()
matches = PkOp.findall(line)
for firestick in matches:
PkOpArray = line.split()
PkOp = PkOpArray
print(PkOp)
主要是我收到此错误
matches = PkOp.findall(line)
AttributeError: 'list' object has no attribute 'findall'
如果我删除斜线字符,我可以使用“总计优化”或“设备”来显示线条。我只是不能更具体地说明我想要的东西。
我错过了什么?如果我只是编译一个文本字符串,但使用像空格一样的特殊正则表达式,它的工作正常,它会失败。正则表达式在notepad ++中检出
答案 0 :(得分:1)
当您撰写PkOp = PkOpArray
时,您刚刚将正则表达式更改为list
。
如果您删除该行,并将print(PkOp)
更改为print(PkOpArray)
,则应该解决您的问题,假设其余代码正确无误。