正则表达式帮助,赞成

时间:2010-12-02 07:21:49

标签: python regex csv

所以我有一个逗号分隔数字的文本文件,我正在尝试编写Python以一次获得三个数字 - 它们是3D坐标,我想一次分析它们3个。 / p>

文本文件的格式为

X1,Y1,Z1,X2,Y2,...,

并且只是一行。

干杯。

3 个答案:

答案 0 :(得分:2)

你不需要正则表达式。查看CSV module

答案 1 :(得分:2)

def coords(line):
    parts = line.split(',')
    for i in range(0, len(parts), 3):
        yield map(int, parts[i:i+3])

真的不需要求助于正则表达式。

答案 2 :(得分:1)

是的,任何以逗号分隔的数据都表明需要CSV,但你也可以在这里进行简单的拆分。

您的逗号分隔的(x,y,z)坐标字符串

>>> t = "x1,y1,z1,x2,y2,z2,x3,y3,z3"

使用拆分:

>>> t1 = t.split(',')
>>> t1
['x1', 'y1', 'z1', 'x2', 'y2', 'z2', 'x3', 'y3', 'z3']

然后将结果整理/分组为3个元素。您需要确保len(t1)是3的倍数。使用断言。

>>> t2 = []
>>> for x in range(len(t1)/3): t2.append(t1[x*3 : x*3+3])
... 
>>> t2
[['x1', 'y1', 'z1'], ['x2', 'y2', 'z2'], ['x3', 'y3', 'z3']]
>>>