我需要从一个包含命名多边形坐标的文本文件创建一个字典。输出需要是一个字典,其中多边形名称是键,对应的x和y坐标是值。文件中的大多数条目遵循如下标准布局:
Name of polygon
(12.345, 1.2567)
(5.6789, 2.9876)
(9.0345, 3.7654)
(3.4556, 2.3445)
Name of next polygon
(x, y values)
但是,有些条目存在不规则性,例如所有值都在一行上,或者在括号之间有额外的字符。我需要对这些值进行循环,并拆分括号中包含的值。
到目前为止,我已经在文件的第一遍中创建了字典,并尝试使用正则表达式根据括号的内容拆分值:
with open(fpath, 'r') as infile:
d = {}
#split the data into keys and values
for group in infile.read().split('\n\n'):
entry = group.split('\n')
key, *val = entry
d[key] = val
for value in d.values():
value = re.split("*[\(.+$\)]*", str(value))
print(d)
我希望这样可以清理值,并为括号中包含的每组坐标创建单独的值,但是我得到了以下错误:re.error: nothing to repeat at position 0
1条答案
按热度按时间roejwanj1#
我想我已经找到了解决问题的方法。我需要在循环中考虑每个键的多个值,并使用
re.findall()
而不是re.split()
。因此,我的最终循环如下所示: