在python中从文本文件获取坐标

在python中从文本文件获取坐标,python,Python,我必须计算由文本文件中的坐标定义的行的长度 在文本文件中,坐标如下所示: 1; (5,2); (3,3); (3,2); (1,0) 2; (4,5); (5,7); (6,8); (8,9) 3; (1,1); (1,2); (1,3) 4; (2,1); (3,2); 还有几行 我不知道该怎么做。我首先尝试去掉id(第一个数字)和括号。剥离id确实有效,但括号的.strip完全无效 with open('polyline.txt','r') as f: data = f.readli

我必须计算由文本文件中的坐标定义的行的长度

在文本文件中,坐标如下所示:

1; (5,2); (3,3); (3,2); (1,0)

2; (4,5); (5,7); (6,8); (8,9)

3; (1,1); (1,2); (1,3)

4; (2,1); (3,2);
还有几行

我不知道该怎么做。我首先尝试去掉id(第一个数字)和括号。剥离id确实有效,但括号的
.strip
完全无效

with open('polyline.txt','r') as f:
data = f.readlines()
for line in data:
data=line.strip("()")
data=line[3:]
print data
--


请注意,这将为您提供每个列表中相邻坐标之间的距离。

然后我将如何计算线的长度,因为不幸的是,我仍然迷路:/calculate到底是什么?两个最远点的距离?计算从坐标点1到坐标点2的直线长度,然后从坐标2到坐标3,然后从坐标3到坐标4(如果有4)的直线长度,汇总3条直线的长度。根据您的需要进行更新,然后我将如何计算直线的长度,如果你也能帮我的话/@你的Python版本是什么?
import re, math

def distance_formula(p1, p2):
    return math.sqrt((p2[0] - p1[0])**2 + (p2[1] - p1[1])**2)

lines = []
with open('file.txt', 'rb') as f:
    for row in f.read().splitlines():
        row = [int(x) for x in re.findall(r'(\d+)', row)]
        lines.append(sorted([(row[i + 1], row[i + 2]) for i in range(0, len(row[1:]), 2)]))

for i, line in enumerate(lines):
    distance = 0
    for c, coordinate in enumerate(line):
        distance = distance + distance_formula(coordinate, line[c + 1])
        if c + 1 >= len(line) - 1:
            break
    print 'Line {0} has a length of {1} units'.format(i + 1, distance)
>>> from math import pow, sqrt

>>> def distance(c1, c2):
...     return sqrt(pow(c2[0] - c1[0], 2) + pow(c2[1] - c1[1], 2))

>>> distance((3, 1), (3, 2))
1.0
>>> import re

>>> with open('polyline.txt','r') as f:
...     for line in f:
...         coordinates = re.findall(r'\((\d+),(\d+)\)', line)
...         coordinates = map(lambda c: map(int, c), coordinates)
...         print coordinates
...         for i, coordinate in enumerate(coordinates[:-1]):
...             print distance(coordinate, coordinates[i + 1]),
...         print

[[5, 2], [3, 3], [3, 2], [1, 0]]
2.2360679775 1.0 2.82842712475

[[4, 5], [5, 7], [6, 8], [8, 9]]
2.2360679775 1.41421356237 2.2360679775

[[1, 1], [1, 2], [1, 3]]
1.0 1.0

[[2, 1], [3, 2]]
1.41421356237