#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)