我有一个像这样的csv文件:
XXXX,YYYYY,41.29942,2.19939,2013-05-21T10:22:35+0000
XXXX,YYYYY,41.2679,2.08318,2013-05-21T10:42:25+0000
XXXX,YYYYY,41.23117,1.99121,2013-05-21T11:03:39+0000
XXXX,YYYYY,41.15553,1.93085,2013-05-21T11:27:40+0000
我正在使用以下脚本
import re
ruta = 'C:\filename.csv'
with open(ruta,'r') as fh:
lector = fh.read()
pat = re.compile(r'^(XXXX,YYYYY,([0-9]{0,2}.[0-9]{0,7}),(-?)([0-9]{0,2}.[0-9]{0,7})),([0-9]{0,4}-[0-9]{0,2}-[0-9]{0,2}.[0-9]{0,2})T([0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2})(\+0000)\n')
res = re.findall(pat,lector)
print(res)
但是找到第一组。 我知道我可以使用csv模块,但我认为组更容易处理,因为有些线是纬度和经度位置。
我正在尝试search
,findall
和finditer
,但只返回第一行。
也许有关多线的事情,但我不明白。
答案 0 :(得分:2)
如果您未指定任何标记,则默认情况下^
匹配字符串的开头。
指定re.M
flag(或re.MULTILINE
)以匹配行的开头。
pat = re.compile(r'^....', flags=re.M)