我有一个带id和坐标的SVG文件。如何将id和坐标提取到自己的键值对中?所以有数百个类似于下面的路径。我尝试使用re.findall
来分隔值,但不能将它们推送到数组/词组中。
<path
id="58"
d="
M 457984.36 7575754.89
L 468060.3 7580832.86
L 520309.28 7583741.78
L 553166.03 7596446.73
L 555605.05 7594867.37
L 561992.47 7597226.43
z" />
答案 0 :(得分:0)
出于这些目的,我删除了示例中的换行符。
import re
data = '<path id="58" d="M 457984.36 7575754.89 L 468060.3 7580832.86 L 520309.28 7583741.78 L 553166.03 7596446.73 L 555605.05 7594867.37 L 561992.47 7597226.43 z" />
all_coords = re.findall('id="([0-9]{1,4})" d="((?:[ML] [0-9]{6,8}\.[0-9]{1,2} [0-9]{6,8}\.[0-9]{1,2}).+?)\s."', data)
coordDict = dict(all_coords)
基本上我使用组捕获从'id'和'd'attrs的值创建一个元组。我用multipule路径标签测试了这个。
要完成csv输出,您可以
import csv
with open("test.csv", "wb") as f:
csv.writer(f).writerows((k, v) for k, v in coordDict.iteritems())