所以我有一个逗号分隔数字的文本文件,我正在尝试编写Python以一次获得三个数字 - 它们是3D坐标,我想一次分析它们3个。 / p>
文本文件的格式为
X1,Y1,Z1,X2,Y2,...,
并且只是一行。
干杯。
答案 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']]
>>>