未分类 · 2022年1月14日 0

Python递归合并一堆文件到一个Word–代码分享

用于自动排版,扫描该目录下所有.py文件成一个docx文档,以方便填写实验报告。当然了,您也可以修改这份代码以筛选您想合并的文件类型。
例子:有一个文件夹,里面有一堆子目录,然后一堆文件。

把他们生成一个docx文件,这么用:

结果:

代码:

#用于自动排版,扫描该目录下所有.py文件成一个docx文档,以方便填写实验报告
#Auhor:diluyedi
#2021.1.5.5
import os
from docx.oxml.ns import qn
from docx import *
document = Document()
document.styles['Normal'].font.name = 'Times New Roman'
document.styles['Normal']._element.rPr.rFonts.set( qn('w:eastAsia'),u'宋体')
document.add_heading('代码整合', 0)
path = "."
#files= os.listdir(path)
files0=[]
def print_files(path):
    lsdir = os.listdir(path)
    dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))]
    if dirs:
        for i in dirs:
            print_files(os.path.join(path, i))
    files = [i for i in lsdir if os.path.isfile(os.path.join(path,i))]
    #print(files)
    for f in files:
        files0.append(os.path.join(path, f))
        #return (os.path.join(path, f))
print_files(path)

print(files0)
for file in files0:
    #position = path+'\\'+ file
    if file[-2:]!="py":
        continue
    if file==".\代码合并.py":
        continue
    document.add_heading(file, 1)
    print(file)
    with open(file, "r",encoding='UTF-8') as f:
        data = f.read()
        p = document.add_paragraph(data)
        document.save('code.docx')