正则表达式匹配计数循环通过不同的csv文件

时间:2019-07-03 00:17:52

标签: python python-3.x python-2.7

我在一个目录中有多个csv文件。我打开每个csvfile并使用正则表达式模式搜索匹配项,然后最终必须获得每个文件的所有匹配项的计数。

data_pattern = "^(?!b(d)1+b)(?!123456789|219099999|078051120)(?!666|000|9d{2})\d{3}(?!00)\d{2}(?!0{4})\d{4}$"
p = re.compile(ssn_data_pattern)
ALL_CSVFILES =  glob.glob('/data/csvdata/*.csv')
for csvfile in ALL_CSVFILES:
 lines = [line.strip() for line in open(csvfile)]
 for line in lines:
   match=re.findall(ssn_data_pattern,line)
   head,tail=os.path.split(csvfile)
   tailstring=tail
   filename=tailstring.replace(".csv", "")
   print(filename,len(match))

输出在这里

第一行是字段名称,它表示0,其余所有匹配项都计为1。 相反,我需要一次为所有行计数。

/data/csvdata/STG_201__DATA.csv
STG_201__DATA 0
STG_201__DATA 1
STG_201__DATA 1
STG_201__DATA 1
STG_201__DATA 1
/data/csvdata/CISADM2_BT7_DATA.csv
CISADM2_BT7_DATA 0
CISADM2_BT7_DATA 1
CISADM2_BT7_DATA 1
CISADM2_BT7_DATA 1
CISADM2_BT7_DATA 1
CISADM2_BT7_DATA 1
/data/csvdata/CISADM_DXP_ENRO_DATA.csv
CISADM_DXP_ENRO_DATA 0
CISADM_DXP_ENRO_DATA 1
CISADM_DXP_ENRO_DATA 1
CISADM_DXP_ENRO_DATA 1
CISADM_DXP_ENRO_DATA 1
CISADM_DXP_ENRO_DATA 1

0 个答案:

没有答案