gpt4 book ai didi

python - 如何从文本文件中获取多个坐标?

转载 作者:行者123 更新时间:2023-12-01 00:46:21 25 4
gpt4 key购买 nike

我正在设置一个脚本,我需要从文本文件中获取一些坐标。

我的文本文件的架构是:

ABC;
1 2
6 -8;
DEF;
Coordinates
3-5
4 6
9 7;
XYZ;
ABC;
Coordinates;
Coordinates
1 2
5 -1;

目前,我尝试在字典中添加坐标,但只看到最后一个坐标。我尝试过使用 while 循环:

file = open(txt, 'r')
line = file.readline()
while line:
if line.lstrip().startswith('Coordinates') and not (line.rstrip().endswith(';')):
coordinates['points'].append((x, y))

我已经定义了 X 和 Y 点,但我没有找到将每个坐标添加到字典中的方法。

预期输出:['点':[3, -5, 4, 6, 9, 7, 1, 2, 5, -1]]

但目前,这是我的输出:['points':[1, 2, 5, -1]]

最佳答案

您可以使用re来匹配正则表达式中的所有数字。 (doc)

我还使用map将每个数字转换为float类型。 (help on map)

代码如下:

# import module
import re
# Create output variable
res = {"Points": []}

# Read file
with open("temp.txt", "r") as f:
# Read line
line = f.readline()
while line:
# Find begining block
if "Coordinates" in line:
# Read block
while line and "Coordinates;" not in line:
# Match numbers on line (with the - if negative)
numbers = re.findall(r'(\-{0,1}\d+)', line)
# If there are number
if len(numbers) > 0:
# Add them as float
res["Points"] += map(float, numbers)
# Read next line
line = f.readline()
# Read next line
line = f.readline()

print(res)
# {'Points': [3.0, -5.0, 4.0, 6.0, 9.0, 7.0, 1.0, 2.0, 5.0, -1.0]}

关于python - 如何从文本文件中获取多个坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948723/

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