用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")
采用正则表达式替换