Если искомая строка будет в буквальном смысле в HTML, тогда будет удобна простая замена строки:
old_html = open(html_file).read()
new_html = old_html.replace(my_string, "")
if new_html != old_html:
open(html_file, "w").write(new_html)
В качестве примера того, что строка не находится в HTML буквально, предположим, что вы ищете "Test", как вы сказали. Вы хотите, чтобы он соответствовал этим фрагментам HTML?
<a href='test.html'>Test</a>
<A HREF='test.html'>Test</A>
<a href="test.html" class="external">Test</a>
<a href="test.html">Test</a>
и т. Д. «Один и тот же» HTML может быть выражен разными способами. Если вы знаете точные символы, используемые в HTML, тогда простая замена строки вполне подойдет. Если вам нужно сопоставить на уровне семантики HTML, вам нужно будет использовать более продвинутые инструменты, такие как BeautifulSoup, но тогда у вас также будет потенциально очень другой вывод HTML, чем вы начали, даже в разделах, не затронутых удалением , потому что весь файл будет проанализирован и восстановлен.
Чтобы выполнить код для многих файлов, вы найдете os.path.walk
полезным для поиска файлов в дереве или glob.glob
для сопоставления имен файлов с шаблонами, подобными оболочке.