我有类似下面的许多部分文件:如何将文件读取为多个多边形的嵌套坐标列表?
[40.742742,-73.993847]
[40.739389,-73.985667]
[40.74715499999999,-73.97992]
[40.750573,-73.988415]
[40.742742,-73.993847]
[40.734706,-73.991915]
[40.736917,-73.990263]
[40.736104,-73.98846]
[40.740315,-73.985263]
[40.74364800000001,-73.993353]
[40.73729099999999,-73.997988]
[40.734706,-73.991915]
[40.729226,-74.003463]
[40.7214529,-74.006038]
[40.717745,-74.000389]
[40.722299,-73.996634]
[40.725291,-73.994413]
[40.729226,-74.003463]
[40.754604,-74.007836]
[40.751289,-74.000649]
[40.7547179,-73.9983309]
[40.75779,-74.0054339]
[40.754604,-74.007836]
我需要在每一部分作为对坐标列表的阅读(每区一个额外的\n
分隔)。
在一个类似的文件我有(除相同,没有额外的换行符休息),我绘制一条从整个文件一个多边形。我可以使用下面的代码中的坐标读取和matplotlib绘制:
mVerts = []
with open('Manhattan_Coords.txt') as f:
for line in f:
pair = [float(s) for s in line.strip()[1:-1].split(", ")]
mVerts.append(pair)
plt.plot(*zip(*mVerts))
plt.show()
我怎么能完成同样的任务,除了有许多超过1个多边形,在我的文件中的每个多边形通过一个额外的换行分隔?
为什么换行relavent?表单是'[#,#]'。你的意思是可能有'[#,#] [#,#] [#,#] \ n'这3个坐标与其他坐标分开吗? – sln 2014-09-20 23:17:00
[#,#] \ n [#,#] \ n。 。 。 \ n [#,#] \ n \ n是一个多边形,在换行之前有任意给定的坐标数 – jqwerty 2014-09-20 23:18:34
那么你可以将每行解析为一个字符串,然后建立一个正则表达式来查找每一对。这是否是你有麻烦的正则表达式,比如去除装饰'[,]'? – sln 2014-09-20 23:22:13