首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文本文件的x和y坐标计算距离

从文本文件的x和y坐标计算距离
EN

Stack Overflow用户
提问于 2018-06-07 03:00:12
回答 1查看 76关注 0票数 0

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

我有一个文本文件'test.txt‘,它的内容是:

1, 2

3, 4

5, 7

@@@@@@@ 

10, 11

19, 20 

左侧的数字是x坐标,右侧的数字是y坐标。我想要得到六位数的距离,以及‘@’下面的四位数的距离。由于距离公式是,distance = SQRT((y2-y1)^2 + (x2-x1)^2)。

我的问题是,我想提取六个数字,并计算三个对的总距离。例如,total_distance = SQRT((4-2)^2 + (3-1)^2) + SQRT((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(",")

我正在想办法解决这个问题。你能帮我吗?或者给我一些建议,我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 06:16:44

尝试使用regex:

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:我不明白你想用这些数字做什么

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50727736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档