python读取了大量文件并将信息写入单个txt

时间:2017-05-30 02:56:19

标签: python file io

我有一个包含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()

1 个答案:

答案 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