注册 登录
编程论坛 Python论坛

求Python代码: 批量为中文名的word中增加2段内容,同时删除“【饮片彩图】”开头的整段内容

ljohn009 发布于 2019-09-27 16:53, 1347 次点击
D盘123文件夹内有几十个中文名称的word,想在每个Word文末均增加2个自然段的内容,内容如下:
【饮片性状】 参考《中国药典》(2015版)[1]和生产实际中的盐关黄柏性状。
【炮制功用】 参考《中药炮制学》[2]编写。
然后,删除以“【饮片彩图】”开头的整个自然段段落内容。
https://img-bbs.
1 回复
#2
fall_bernana2019-09-27 18:33
回复 楼主 ljohn009
首先需要安装 pip install python-docx
程序代码:

# -*- coding:utf-8 -*-
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
import os,sys,re
work_dir = 'E:'
for parent, dirnames, filenames in os.walk(work_dir,  followlinks=True):
    print(parent,filenames)
    for filename in filenames:
        file_path = os.path.join(parent, filename)
        
        if re.search(r'\.docx',filename):
            pass
        else:
            continue
        newfilename=filename.replace('.docx','_1.docx')
        newfile_path=os.path.join(parent, newfilename)
        print('文件名:%s' % filename)
        print('文件完整路径:%s\n' % file_path)
        test = Document()
        p = test.add_paragraph(u'')

        dd = Document(file_path)
        for dot in dd.paragraphs:
            print (dot.text,type(dot.text))
            if re.search(r'【饮片彩图】',dot.text):
                pass
            else:
                run = p.add_run(dot.text+u'\n')
                run.font.size = Pt(24)
        run = p.add_run("【饮片性状】 参考《中国药典》(2015版)[1]和生产实际中的盐关黄柏性状。"+u'\n')
        run = p.add_run("【炮制功用】 参考《中药炮制学》[2]编写。"+u'\n')
        
        #run.font.name=u'楷体'
        #run.font.size = Pt(72)
        #r = run._element
        #r.rPr.rFonts.set(qn('w:eastAsia'), u'楷体')
        test.save(newfile_path)

字体大小可以自己调节
1