欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 文件处理1:将某一目录下的文件合并

发布时间:2025/4/5 python 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 文件处理1:将某一目录下的文件合并 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

导入库函数

import os

函数1:在指定目录下查找指定后缀名的文件,不查找子目录,返回文件路径名列表。 默认在当前目录下查找,不指定后缀名。

def get_filelist(base_dir='.', target_ext=''):fname_list = []for fname in os.listdir(base_dir):#os.listdir——列出base_dir下的所有文件path = os.path.join(base_dir, fname)#把base_dir的路径和fname的路径连起来if os.path.isfile(path):#如果path对应的内容是一个文件的话fname_main, fname_ext = os.path.splitext(fname) # os.path.splitext——把文件名和后缀切分开if fname_ext == target_ext or target_ext == '':#如果是我们需要的后缀名的话,放到需要返回的列表里面去fname_list.append(path)return(fname_list)

以下图为例,测试函数

得到(因为是windows系统,所以反斜线可能会比较奇怪)

函数2:将列表 file_list 里的文件(默认为文本文件)合并到一个文本文件

def merge_txt2txt(in_file_list, out_file_name):out_file = open(out_file_name, 'w', encoding='utf-8')#需要写入的文件out_file.write('合集')out_file.write('\n' + '='*50 + '\n\n')for fname in in_file_list:#对于每一个要合并的文件in_file = open(fname, 'r', encoding='utf-8')content = in_file.readlines()in_file.close()# 往txt文档中添加内容 out_file.write('--- ' + fname + ' ---\n\n')out_file.writelines(content)out_file.write('\n\n' + '='*50 + '\n\n')out_file.close()

然后进行测试:

result_dir_name = 'D:/tmp/output/tmp/'# 设置保存目标文件的目录# --- 如果不确定该目录是否存在,可以用如下代码检查 if os.path.isdir(result_dir_name): # 检查目录是否存在pass else:os.makedirs(result_dir_name) # 如果不存在,就建立该目录 ## os.makedirs(path)可以建立多级目录,例如'./output/test1'txt_file_name=result_dir_name+'result.txt'merge_txt2txt(file_list, txt_file_name)

那么在tmp/output/tmp/里面就有了我们的文件

原来的两个文件:

合并后的文件

函数3: 将列表 file_list 里的文件合并到一个docx文件

def merge_txt2docx(in_file_list, out_file_name) :doc=Document()#创建docx文档对象doc.styles['Normal'].font.name = 'Courier New' # 设置英文字体doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')# 设置中文字体doc.add_heading('合集', 0) # 0级标题# 往docx文档中添加标题for fname in in_file_list: # 遍历列表中的所有文件in_file = open(fname, 'r', encoding='utf-8')# 打开文本文件,读取内容content = in_file.read() #这里是read!in_file.close()# 往docx文档中添加段落doc.add_heading(fname, 1) # 当前文件名作为1级标题doc.add_paragraph(content) # 当前文件内容作为正文doc.add_page_break()# 添加分页符doc.save(out_file_name)# 保存文档

同样地,我们进行测试

result_dir_name = 'D:/tmp/output/tmp/' # 设置保存目标文件的目录 # --- 如果不确定该目录是否存在,可以用如下代码检查 if os.path.isdir(result_dir_name): # 检查目录是否存在pass else:os.makedirs(result_dir_name) # 如果不存在,就建立该目录 ## os.makedirs(path)可以建立多级目录,例如'./output/test1' txt_file_name=result_dir_name+'result.docx'merge_txt2docx(file_list, txt_file_name)

结果为:

总结

以上是生活随笔为你收集整理的python 文件处理1:将某一目录下的文件合并的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。