Извлечение из Python в несколько строк - PullRequest
2 голосов
/ 20 июня 2011

Я работаю с 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

Не получается вытащить числа издругие линии, хотя.Есть предложения?

Ответы [ 3 ]

9 голосов
/ 20 июня 2011

Просто сделай:

matches = re.findall("([0-9]{5})",f.read())

Вы можете извлечь их все сразу - не нужно зацикливаться на строках.

4 голосов
/ 20 июня 2011

Вам не нужно просто изменить 'expr' на 'L'?

matches = re.findall("([0-9]{5})",L)
1 голос
/ 20 июня 2011

Может быть, я наивен, но разве вы не должны искать числа в L, а не в expr?

matches = re.findall("([0-9]{5})", L)
                                 ^^^^^^
...