我正在使用python并尝试从.txt文件中提取数字,然后将它们分组为多个类别。 .txt文件如下所示:
IF 92007<=ZIPCODE<=92011 OR ZIPCODE=92014 OR ZIPCODE=92024
OR 92054<=ZIPCODE<=92058 OR ZIPCODE=92067 OR ZIPCODE=92075
OR ZIPCODE=92083 OR ZIPCODE=92084 OR ZIPCODE=92091 OR ZIPCODE=92672
OR ZIPCODE=92081 THEN REGION=1; ** N COASTAL **;
此代码用于从第一行提取数字:
import re
TXTPATH = 'C:/zipcode_mapping.txt'
f = open(TXTPATH,'r')
expr= "IF 92007<=ZIPCODE<=92011 OR ZIPCODE=92014 OR ZIPCODE=92024"
for line in f:
L = line
print(L)
matches = re.findall("([0-9]{5})",expr)
for match in matches:
print match
我似乎无法从其他行中提取数字。有什么建议吗?
答案 0 :(得分:9)
只是做:
matches = re.findall("([0-9]{5})",f.read())
您可以一次性提取所有内容 - 无需循环遍历。
答案 1 :(得分:4)
您是否只需要将'expr'更改为'L'?
matches = re.findall("([0-9]{5})",L)
答案 2 :(得分:1)
也许我天真,但是你不应该在L中搜索数字,而不是在expr中搜索?
matches = re.findall("([0-9]{5})", L)
^^^^^^