用python处理序号(格式化word),一、替换为(一),(一)替换为1.,1替换为(1)

用python处理序号,一、替换为(一),(一)替换为1.,1替换为(1)

如:
一、你好
(一)你好不好
1.还好
2、还不错

替换为
(一)你好
1.你好不好
(1)还好
(2)还不错

注意:
1.()可能是中文括号(),也可能是英文括号()
2.“2、还不错”2后面是“、”号,也就是说,可能是"."也可能是"、"

你可以直接转成String,然后进行全局替换(最方便的是进行正则替换),最容易的是使用进行 replace("1、","(1)") repalce("1.","(1)")

可以试试

import docx
file=docx.Document("D:\\temp\\word.docx")
file_save = docx.Document()
for para in file.paragraphs:
    file_save.add_paragraph(para.replace("1","(1)").replace("(一)","1.").replace("(一)","1.").replace("一、","(一)").replace("一.","(一)"))


file_save.save("D:\python\python\test.docx")
    

理顺关系
第一步
.replace("1.","(1)")
.replace("1、","(1)")
第二步
.replace("(一)","1.")
.replace("(一)","(1.)")
第三步
.replace("一、"(一)")
.replace("一.","(一)")

转成字符串进行替换,注意替换顺序
str.replace("1","(1)").replace("(一)","1.").replace("一、","(一)");

replace("替换的东西","替换成什么")

【使用python替换word文档部分内容】https://mbd.baidu.com/ma/s/xmJWASfP

使用正则表达式可以解决这个替换的问题


  doc = docx.Document('test.docx')
  for paragraph in doc.paragraphs:
      if '需要替换的字符串' in p.text:
          p.text = p.text.replace('需要替换的字符串', '我是替换后的字符串')
  doc.save('result_test.docx')

基于上面的进行下扩展,以此类推:

import docx
file=docx.Document("D:\\temp\\word.docx")
file_save = docx.Document()
for para in file.paragraphs:
    file_save.add_paragraph(para.replace("1", "(1)").replace("(一)", "1.").replace("(一)", "1.").replace("一、", "(一)").replace("一.", "(一)"))
.replace("2", "(2)").replace("(二)", "2.").replace("(二)", "2.").replace("二、", "(二)").replace("二.", "(二)"))
.replace("3", "(3)").replace("(三)", "3.").replace("(三)", "3.").replace("三、", "(三)").replace("三.", "(三)"))
.replace("4", "(4)").replace("(四)", "4.").replace("(四)", "4.").replace("四、", "(四)").replace("四.", "(四)"))
.replace("5", "(5)").replace("(五)", "5.").replace("(五)", "5.").replace("五、", "(五)").replace("五.", "(五)"))
.replace("6", "(6)").replace("(六)", "6.").replace("(六)", "6.").replace("六、", "(六)").replace("六.", "(六)")))
 
 
file_save.save("D:\python\python\test.docx")
    
 

采用正则表达式替换

https://www.runoob.com/python/python-reg-expressions.html