python 文件处理1:将某一目录下的文件合并
生活随笔
收集整理的這篇文章主要介紹了
python 文件处理1:将某一目录下的文件合并
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
導(dǎo)入庫函數(shù)
import os函數(shù)1:在指定目錄下查找指定后綴名的文件,不查找子目錄,返回文件路徑名列表。 默認(rèn)在當(dāng)前目錄下查找,不指定后綴名。
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對應(yīng)的內(nèi)容是一個文件的話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)以下圖為例,測試函數(shù)
得到(因為是windows系統(tǒng),所以反斜線可能會比較奇怪)
函數(shù)2:將列表 file_list 里的文件(默認(rèn)為文本文件)合并到一個文本文件
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文檔中添加內(nèi)容 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/'# 設(shè)置保存目標(biāo)文件的目錄# --- 如果不確定該目錄是否存在,可以用如下代碼檢查 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/里面就有了我們的文件
原來的兩個文件:
合并后的文件
函數(shù)3:?將列表 file_list 里的文件合并到一個docx文件
def merge_txt2docx(in_file_list, out_file_name) :doc=Document()#創(chuàng)建docx文檔對象doc.styles['Normal'].font.name = 'Courier New' # 設(shè)置英文字體doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋體')# 設(shè)置中文字體doc.add_heading('合集', 0) # 0級標(biāo)題# 往docx文檔中添加標(biāo)題for fname in in_file_list: # 遍歷列表中的所有文件in_file = open(fname, 'r', encoding='utf-8')# 打開文本文件,讀取內(nèi)容content = in_file.read() #這里是read!in_file.close()# 往docx文檔中添加段落doc.add_heading(fname, 1) # 當(dāng)前文件名作為1級標(biāo)題doc.add_paragraph(content) # 當(dāng)前文件內(nèi)容作為正文doc.add_page_break()# 添加分頁符doc.save(out_file_name)# 保存文檔同樣地,我們進行測試
result_dir_name = 'D:/tmp/output/tmp/' # 設(shè)置保存目標(biāo)文件的目錄 # --- 如果不確定該目錄是否存在,可以用如下代碼檢查 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)結(jié)果為:
總結(jié)
以上是生活随笔為你收集整理的python 文件处理1:将某一目录下的文件合并的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 面试题 03.06. 动物收容
- 下一篇: python文件操作2:在指定目录下查找