python 文件处理1:将某一目录下的文件合并
生活随笔
收集整理的这篇文章主要介绍了
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:将某一目录下的文件合并的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 文巾解题 面试题 03.06. 动物收容
- 下一篇: python文件操作2:在指定目录下查找