python day3

2020-12-07 19:32:38   |  1136 人气


import os
from docx import Document
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qn

#docx文件目录
old_file_path = 'E:\pro\doc'

#生成新文件目录
new_file_path = 'E:\pro\docx'

replace_dict  ={
   '第一范文网':'汇文网',
   
'第一范文':'汇文网'
}   #替换字典


def check_and_change(document,replace_dict):
   for para in document.paragraphs:
       # lastep = document.paragraphs[len(document.paragraphs) - 1]  #清除段落,最后一段
       
# lastep.clear()
       
for i in range(len(para.runs)):  #替换关键词
           
for key,value in replace_dict.items():
               if key in para.runs[i].text:
                   print(key+"-->"+value)
                   para.runs[i].text = para.runs[i].text.replace(key,value)
               else:
                   pass
       for
run in para.runs:     #设置文档格式
           
run.font.bold = False  # 黑体
           
run.font.italic = False  # 斜体
           
run.font.underline = False  # 下划线
           
run.font.strike = False  # 删除线
           
run.font.shadow = False  # 阴影
           
run.font.size = Pt(16)  # 字体大小
           
# run.font.color.rgb = RGBColor(0, 0, 0)  # 字体颜色
           
if run.font.color.rgb == RGBColor(255,0,0):  #删除红色字体
               
run.clear()
           run.font.name = '仿宋_GB2312'  # 字体
           
r = run._element.rPr.rFonts  # 中文字体
           
r.set(qn('w:eastAsia'), '仿宋_GB2312')
           # paragraph.alignment = WD_ALIGN_PARAGRAPH.LEFT  # 对齐方式
           
para.paragraph_format.line_spacing = Pt(28)  #用浮点数表示两倍行距
           
para.paragraph_format.space_before = Pt(12)  #表示12
           
para.paragraph_format.space_after = Pt(28)   #表示28

       
# print(para.style.name,para.text)      #获取标题文字
       
style_name = para.style.name
       if style_name.startswith('Heading'):     #修改标题属性
           
for a in para.runs:
               a.font.size = Pt(20)
               a.font.bold = True
               
a.font.name = '宋体'

       
if len(para.text) == 0:     #删除空白行,固定写法
           
p = para._element
           p.getparent().remove(p)
           p._p = p._element = None


   return
document




def main():
   for name in os.listdir(old_file_path):
       print(name)
       old_file = old_file_path + '/'+name
       new_file = new_file_path + '/'+name
       if old_file.split('.')[-1] == 'docx':    #触发替换函数,必须是docx格式
           
document = Document(old_file)
           document = check_and_change(document,replace_dict)
           document.save(new_file)
       print('done')

if __name__ == '__main__':
   main()


上一篇:用Python批量替换多个Word文件中的文字

下一篇:python批量将文件夹内所有PPT转化为PPTX
收藏
相关资源
Day3 & Day4.ppt Day3 & Day4.ppt
day3直播笔记 (2).docx day3直播笔记 (2).docx
考研资料日积月累学单词day3 (2).pdf 考研资料日积月累学单词day3 (2).pdf
高级阶段-day3直播笔记 (2).docx 高级阶段-day3直播笔记 (2).docx
考研资料三天暑假公开课【Day2——Day3】.pdf 考研资料三天暑假公开课【Day2——Day3】.pdf
考研资料中级阶段-day3 直播笔记 (2).docx 考研资料中级阶段-day3 直播笔记 (2).docx
考研资料-翻译长难句伴学—Day3 董.pdf 考研资料-翻译长难句伴学—Day3 董.pdf
【刑法day3】带背团材料 26-38.pdf 【刑法day3】带背团材料 26-38.pdf
高考英语3500词汇表达+阅读训练(DAY3).doc 高考英语3500词汇表达+阅读训练(DAY3).doc
考研资料翻译长难句伴学—Day3 刘畅.pdf 考研资料翻译长难句伴学—Day3 刘畅.pdf
湖南中考英语特色题型增分练(Day3).doc 湖南中考英语特色题型增分练(Day3).doc
热门资讯
python批量将文件夹内所有PPT转化为PPTX
2020年全国一级建造师注册考试专题
2020年全国二级建造师注册考试专题
python day2 附:docx字体大小参照对照表:
python批量将文件夹内所有doc转成docx
python docx 批量修改docx文件内容和选择位置添加内容
用Python批量替换多个Word文件中的文字
doc批量转成docx(doc batch convert docx)
国标电子书库2021年3月资源更新列表
python docx 触发批量替换

当前位置:首页 > 新闻中心 > 教育考试


客服QQ:2660337891点击这里给我发消息

手机:13423958347
 汇文网版权所有  联系邮箱:2660337891#qq.com (请把#改为@)  
  鄂ICP备2022007403号,本站可开发票,需开票联系客服QQ。