Python - 从和.svg文件中读取矩形

时间:2016-03-13 09:42:09

标签: python-2.7 svg

我有几个带有.svg格式的inkspace生成的groundtruth文件。为了验证用python编写的程序的精度,我需要读取.svg文件中的'rect'字段,它们的坐标和其他属性,例如轮廓颜色和id。

我找到了这个话题: Library to parse SVG in Ruby or Python

建议使用pysvg库,但我找不到有关psvg.parser.parse模块的文档。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用python xml解析器,因为svg是xml的一种。使用xpathfindall提取所需的元素,并读取元素属性以提取所需的信息:

import xml.etree.ElementTree as ET
import re

# for parsing svg as a string:
svg = ET.fromstring(svg_string)
# for parsing svg from a file:
svg = ET.parse(svg_file)

rects = svg.findall('rect')

for rect in rects:
    width = rect.attrib['width']
    height = rect.attrib['height']
    x = rect.attrib['x']
    y = rect.attrib['y']

请记住,如果rect元素是组的一部分,则还必须解析它们所属的所有组的转换。这可能会非常棘手。