从svg路径和ID创建csv文件

时间:2014-08-14 15:57:43

标签: python csv svg

我有一个带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" />

1 个答案:

答案 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())