Python 3.x 从文本文件计算x和y坐标的距离

Python 3.x 从文本文件计算x和y坐标的距离,python-3.x,distance,filestream,Python 3.x,Distance,Filestream,我正在学习Python 3,我有一个问题 我有一个文本文件“test.txt”,其内容如下: 1, 2 3, 4 5, 7 @@@@@@@ 10, 11 19, 20 左侧的数字是x坐标,右侧的数字是y坐标。 我想得到六位数字之间的距离,以及四位数字下方的距离。 因为距离公式是, 距离=SQRT((y2-y1)^2+(x2-x1)^2) 我的问题是,我想提取六个数字,然后计算三对的总距离。例如 总距离=平方米((4-2)^2+(3-1)^2)+平方米((7-4)^2+(5-3)^

我正在学习Python 3,我有一个问题

我有一个文本文件“test.txt”,其内容如下:

1, 2

3, 4

5, 7

@@@@@@@ 

10, 11

19, 20 
左侧的数字是
x
坐标,右侧的数字是
y
坐标。 我想得到六位数字之间的距离,以及四位数字下方的距离。 因为距离公式是, 距离=SQRT((y2-y1)^2+(x2-x1)^2)

我的问题是,我想提取六个数字,然后计算三对的总距离。例如 总距离=平方米((4-2)^2+(3-1)^2)+平方米((7-4)^2+(5-3)^2)

在那之后,我想得到(10,11)和(19,20)。让我困惑的是,我怎么能跳过“@@@@@@@@@”并将数字提取为x和y坐标

我开始写这样的代码:

with open("text.txt") as filestream:
    for line in filestream:
        currentline = line.split(",")
我正在想办法解决这个问题。你能帮我一下吗?或者给我一些建议,我该怎么办

尝试使用正则表达式:

import re

with open("text.txt") as f:
    arr = [[int(l.split(',')[0]), int(l.split(',')[1])] for l in f.readlines() if re.match('\d+, \d+', l)]
如果您需要将零件分开:

import re

arr = []
with open("text.txt") as f:
    parts = re.compile('@+').split(f.read())
    for part in parts:
        arr.append([[int(l.split(',')[0]), int(l.split(',')[1])] for l in part.split('\n') if re.match('\d+, \d+', l)])
如果您确定文件存在并且具有特定的格式,那么所有这些都是不正确的


PS:我想不出你想用这些数字做什么

你的文本文件显示“@@@@@@@”,但你在问题中提到了“--------------”,这是预期的吗?对不起,我的错。它应该@@@@@@@