当我们想读取一个文件夹下的多个文件,并且将所有文件的内容整合成一个文件,应该怎么做?

基本的思路是:写一个专门的函数实现以上两个功能。主要用到的命令包括os.listdir()、codecs.open(),其中前者可以获取指定路径下所有的文件名,后者可以用指定编码打开或者创建文件。

 

示例如下,使用 read_dir_all() 函数:

import os
import codecs
 
def read_dir_all(path):   
    dir_list =os.listdir(path)
    content = [] #用content存储合并结果
    for i in dir_list:
        with open('\\'.join([path, i])) as f: #windows下路径用"\\"分隔;open()函数默认为read模式
           content.extend(f.readlines())
    write_file ='\\'.join([path, 'merge_content.txt'])
    with codecs.open(write_file, 'wb', encoding = 'utf-8', errors='ignore') as f:
        for line in content:
           f.write(line.decode('utf-8'))