#html #python-3.x
#HTML #python-3.x
Вопрос:
Я пытаюсь заменить строку, хранящуюся в списке, HTML-тегом в файле, выполнив:
links=[<a href="http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546">http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546<!--V68NUR--></a>]
str1="""<a href="%s">%s<!--V68NUR--></a>"""%(vboard['V68N']['perf.tl'],vboard['V68N']['perf.tl'])
with open(html_file,'r ') as f:
content = f.read()
f.seek(0)
f.truncate()
f.write(content.replace(links[0],str1))
Но я получаю следующую ошибку:
TypeError: replace() аргументом 1 должен быть str, а не Tag.
Чего мне не хватает? Пожалуйста, помогите мне с модификацией, которую я должен сделать.
Ответ №1:
Обновлено:
Из того, что вы опубликовали, я полагаю, что вы обрабатываете html-файл как обычный текст и собираетесь выполнить замену строки.
Функция replace() работает только тогда, когда оба ее аргумента являются строками.
Причина, по которой вы получили ошибку, заключается в том, что links[0] — это не строка, а тег.
Если вам удастся получить ссылки, подобные этой (обратите внимание на одинарные кавычки)
links=['<a href="http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546">http://hexagon-dashboard-gbc-01/vboard/latest?regs=3281546<!--V68NUR--></a>']
затем
content.replace(links[0],str1)
не приведет к возникновению каких-либо ошибок.
Для редактирования html-файлов вы также можете вместо этого использовать HTML Parser.
Комментарии:
1. ссылки также получаются из html
2. Спасибо@Steven Liang