gpt4 book ai didi

python - 使用 Python 从文本文件中检索坐标

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:10 25 4
gpt4 key购买 nike

我有一个坐标格式如下的文本文件:

158,227,,396,226,,487,138,,473,48,,145,55,,139,133,,159,229
413,289,,547,156,,526,26,,140,10,,85,147,,115,245,,415,291
295,175,,292,293

使用 strip 和 re.sub 我得到了这样的结果:

import re
with open('test.txt') as f:
for line in f:
line.strip()
line = re.sub(r',,', ' ', line)
print line

158,227 396,226 487,138 473,48 145,55 139,133 159,229

413,289 547,156 526,26 140,10 85,147 115,245 415,291

295,175 292,293

我想使用那些坐标对 (x,y) 但我不知道该怎么做。

最佳答案

您的字符串替换并不能帮助您从中获取数字。老实说,这让事情变得复杂。

这里最直观的方法肯定是:

  1. 处拆分所有行,
  2. 将列表项组合成元组

让我们开始吧。注意:由于 stackexchange 单方面更改其条款,自 2016 年 1 月 1 日起此处发布的代码是 MIT 许可的,除非我这么说。我是这么说的。下面的代码是 CC-by-SA,如果你不相信我,它甚至不是代码,它是我文本的一部分,它的每一部分都是 CC-by-SA。感谢 SE 注意到这一点。

首先,让我们进行拆分

with open('test.txt') as f:
for line in f:
items = line.split()

现在,让我们将坐标组合成元组。我们只关心第一个和第二个坐标,然后向前跳三个,等等。这就是 [start:stop:step] 语法的作用。 zip 获取多个可迭代对象并将它们按元素组合成元组。

tuples_of_strings = zip(coordinates[0::3], coordinates[1::3])

然后,您可能想要生成那个的 Point(x,y) 对象

points = [Point(float(tup[0]), float(tup[1])) for tup in tuples_of_strings]

关于python - 使用 Python 从文本文件中检索坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com