2

私は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

ただし、他の行から数字を引き出すことはできないようです。助言がありますか?

4

3 に答える 3

9

ただ行う:

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

それらを一度にすべて抽出できます-行をループする必要はありません。

于 2011-06-20T13:33:23.413 に答える
4

「expr」を「L」に変更するだけでいいのではないですか?

matches = re.findall("([0-9]{5})",L)
于 2011-06-20T13:33:06.253 に答える
1

多分私は素朴ですが、expr ではなく L で数値を検索するべきではありませんか?

matches = re.findall("([0-9]{5})", L)
                                 ^^^^^^
于 2011-06-20T13:34:35.337 に答える