Применить красивый суп к нескольким текстовым файлам

#python #loops #text #beautifulsoup

#python #циклы #текст #beautifulsoup

Вопрос:

Благодарен за вашу помощь. Я пытаюсь применить красивый суп ко всем текстовым файлам в каталоге. Приведенный ниже код применяет его только к одному файлу. Может кто-нибудь, пожалуйста, помогите мне понять, что я делаю не так. Спасибо!

 from bs4 import BeautifulSoup
import os
import glob

path = '/Scripts/Demo_Contents/'

for infile in glob.glob(os.path.join(path, "*.txt")):
  with open(infile, "rb") as f:
   text = (f.read())

  cleantext = BeautifulSoup(text, 'lxml').text

with open(infile, 'w') as myfile:
  myfile.write(cleantext)
 

Комментарии:

1. Поместите заключительный with оператор в цикл. Как бы то ни было, вы записываете только конечный файл.

Ответ №1:

Исправьте отступ для этого:

 from bs4 import BeautifulSoup
import os
import glob

path = '/Scripts/Demo_Contents/'

for infile in glob.glob(os.path.join(path, "*.txt")):
  with open(infile, "rb") as f:
     text = (f.read())
     cleantext = BeautifulSoup(text, 'lxml').text
  with open(infile, 'w') as myfile:
     myfile.write(cleantext)