У меня проблема с кодом, изменяющим файл SVG в Python 2.7. Проще говоря, он раскрашивает поле в другой таблице в соответствии с введенным идентификатором. Но когда я его запускаю, у меня остается пустой файл.
from bs4 import BeautifulSoup
import re
svg = (open('Draw.svg').read())
soup = BeautifulSoup(svg, 'lxml')
tags = soup.find_all('path')
for path in tags:
if path.attrs['id']==('FFF'):
print(path.attrs['style'])
Str = re.sub( r'fill:#[0-9a-fA-F]{6}',
r'fill:#ffffff',
path.attrs['style'])
path.attrs['style'] = Str
print(Str)
print(path.attrs['style'])
svg = open('Draw.svg', 'w')
#svg.write(tags)
svg.close()
Я что-то пропустил? Любая помощь будет оценена.
Я также думаю о том, чтобы улучшить код, чтобы иметь несколько входов для одновременного раскрашивания большего количества блоков.
Я немного изменил код, и он всегда возвращает пустой файл, но с ошибкой, когда я пытаюсь его открыть:
Домен ошибки 1, код 4 в строке 1 столбец 1
with open('Draw.svg', 'w') as file:
file.write(str(tags))
Когда я получаю эту ошибку, мой код хорошо выполняется, я проверил его, открыв файл для xml кода svg, но он испортил беспорядок код xml, у меня сложилось впечатление что в нем отсутствуют части кодов по сравнению с исходным изображением