|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这个是目标内容
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<path d="M 50 50 L 50 90 L 90 90 z" fill="red"/>
<path d="M 160 170 L 160 130 L 120 130 z" fill="green"/>
<path d="M 200 30 L 180 30 L 180 50 L 220 50 z" fill="blue"/>
<path d="M 40 100 L 40 140 L 60 140 L 60 120 z" fill="yellow"/>
<path d="M 210 70 L 230 90 L 270 90 L 270 50 L 230 50 z" fill="purple"/>
<path d="M 180 130 L 180 170 L 220 210 L 240 190 z" fill="olive"/>
<path d="M 100 200 L 120 180 L 80 140 L 80 180 z" fill="magenta"/>
</svg>
怎样提取信息到字典里{颜色1:[(坐标1)(坐标2)...],颜色2:[(坐标4)(坐标5)...]等等}
以第一组为例{red:[(50,50)(50,90)(90 ,90)]。。。。}
刚学python,数据和颜色的匹配总是不成功,总是不能把数字完整匹配到颜色里,因为每个颜色里的坐标数是随机的。有没有大佬帮助一下,写一下完整的,真的感谢
本帖最后由 凌九霄 于 2019-4-22 19:59 编辑
- import re
- s = '''<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
- <path d="M 50 50 L 50 90 L 90 90 z" fill="red"/>
- <path d="M 160 170 L 160 130 L 120 130 z" fill="green"/>
- <path d="M 200 30 L 180 30 L 180 50 L 220 50 z" fill="blue"/>
- <path d="M 40 100 L 40 140 L 60 140 L 60 120 z" fill="yellow"/>
- <path d="M 210 70 L 230 90 L 270 90 L 270 50 L 230 50 z" fill="purple"/>
- <path d="M 180 130 L 180 170 L 220 210 L 240 190 z" fill="olive"/>
- <path d="M 100 200 L 120 180 L 80 140 L 80 180 z" fill="magenta"/>
- </svg>'''
- color = {}
- regex = re.findall(r'd="([^"]+)"[^"]+"([^"]+)"', s)
- for i in regex:
- color[ i[ 1 ] ] = [ tuple(map(int, x.split())) for x in re.findall(r'\d+\s*\d+', re.sub(r'M|L|z', '', i[ 0 ])) ]
-
- print(color)
复制代码
|
|