Python – beautifulsoup, применяется в каждом текстовом файле в папке и создает новый текстовый файл

Я использую следующий код Python – Beautifulsoup для удаления элементов html из текстового файла:

from bs4 import BeautifulSoup with open("textFileWithHtml.txt") as markup: soup = BeautifulSoup(markup.read()) with open("strip_textFileWithHtml.txt", "w") as f: f.write(soup.get_text().encode('utf-8')) 

У меня есть вопрос, как я могу применить этот код к каждому текстовому файлу в папке (каталоге), и для каждого текстового файла создается новый текстовый файл, который обрабатывается и где удаляются элементы html и т. Д., Без необходимости вызова функция для каждого текстового файла?

Я оставил бы эту работу ОС, просто заменил бы жесткий код входного файла на вход из внешнего источника, в массив argv , и вызовет скрипт внутри цикла или с регулярным выражением, которое соответствует многим файлам, например:

 from bs4 import BeautifulSoup import sys for fi in sys.argv[1:]: with open(fi) as markup: soup = BeautifulSoup(markup.read()) with open("strip_" + fi, "w") as f: f.write(soup.get_text().encode('utf-8')) 

И запустите его, как:

 python script.py *.txt 

Модуль glob позволяет вам перечислить все файлы в каталоге:

 import glob for path in glob.glob('*.txt'): with open(path) as markup: soup = BeautifulSoup(markup.read()) with open("strip_" + path, "w") as f: f.write(soup.get_text().encode('utf-8')) 

Если вы хотите также сделать это для каждой подпапки рекурсивно, проверьте os.walk