【发布时间】:2014-05-30 11:24:58
【问题描述】:
我正在编写一个简单的 Python 脚本,该脚本查看输入文件的任何行是否与 CSV 文件中的任何模式匹配。
以下代码不显示任何内容:
# -*- coding: utf8 -*-
import re
import csv
csvfile = open('errors.csv', 'r')
errorsreader = csv.reader(csvfile, delimiter="\t")
log = open('gcc.log', 'r')
for line in log:
for row in errorsreader:
matchObj = re.match(row[0],line)
if matchObj:
print (line)
虽然代码相同,但使用以下模式而不是 row[0] 有效:
.* error: expected ‘;’ before ‘}’ token .*
我一直在寻找解决方法,但它们似乎都不起作用。有什么猜测吗?
【问题讨论】:
-
csvfile 用于读取像“1,'a,b'”这样的行,其中字段之间的分隔符也出现在字段中,并被引用。将您的模式放入(例如)patterns.txt 中,每行一个模式。然后用“patterns = list(open('patterns.txt'))”读入它们并用“for pattern in patterns:”迭代。
标签: python regex python-3.x