Python - beautifulsoup,应用于文件夹中的每个文本文件并生成新的文本文件
Python - beautifulsoup, apply in every text file in folder and produce new text file
我正在使用以下 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 元素等. 被删除,而不必为每个文本文件调用该函数?
我会将这项工作留给 OS,只需将硬编码输入文件替换为 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
我正在使用以下 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 元素等. 被删除,而不必为每个文本文件调用该函数?
我会将这项工作留给 OS,只需将硬编码输入文件替换为 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