我有一个包含30911个html文件的文件夹。我想将所有文件名和一些所需信息(使用beautifulsoup)写入txt文件,每个文件名将占用一行。
file1.html
file2.html
file3.html
..
file30911.html
我遇到的问题是,有时它会出错,因为文件'格式不一致。
所以,我希望在停止时保留完整的信息。然后,当我重新运行代码时,它将从停止的任何地方开始,并将左侧信息添加到文件中。 任何人都可以帮助将此目的添加到我的代码中吗?
我的代码:
import re, os, bs4, glob
path = 'C:/output/' #all the 30911 html files
for filename in glob.glob(os.path.join(path, '*.html')):
#I will not post beautifulsoup's code to save space here.
try:
#some beautifulsoup code to find tags
except:
indexFile = open('C:/output1/' + 'index.txt', 'a+')
indexFile.write(os.path.basename(filename) + ', ' + title.get_text(strip=True) + 'no participants')
else:
indexFile = open('C:/output1/' + 'index.txt', 'a+')
indexFile.write(os.path.basename(filename) + ', ' + title.get_text(strip=True) + ', '+ parti_names)
indexFile.close()
答案 0 :(得分:0)
我会阅读现有的' C:/output1/index.txt'将文件放入列表并在附加行之前检查新行。
existing_files = []
with open('C:/output1/index.txt') as infile:
for item in infile:
existing_files.append(item)
#do parsing here
#then check before you append to the file
if file_to_write not in existing_files:
#append the file