当我们想读取一个文件夹下的多个文件,并且将所有文件的内容整合成一个文件,应该怎么做?
基本的思路是:写一个专门的函数实现以上两个功能。主要用到的命令包括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'))