这个代码并不完美,还需要写重新写文件生成新文件才好,里面分行可能也有问题,有空修改下
import docx
doc=docx.Document(r'C:\Users\BXS-PC\Desktop\1.5MW风电机组运行维护手册.docx')
def tihuan(doc,old_info, new_info):
'''此函数用于批量替换合同中需要替换的信息
doc:文件
old_info和new_info:原文字和需要替换的新文字
'''
#读取段落中的所有run,找到需替换的信息进行替换
i=0
for para in doc.paragraphs: #
for run in para.runs:
#run.text = run.text.replace(old_info, new_info) #替换信息
a = run.text.replace(old_info, new_info) #替换信息,只是在cmd里面print替换了,并没有在文件中进行替换,需要另外写文件才行
#print(a)
run.text=a
#print(run.text)
i+=1
#读取表格中的所有单元格,找到需替换的信息进行替换
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
#cell.text = cell.text.replace(old_info, new_info) #替换信息
b = cell.text.replace(old_info, new_info) #替换信息,只是在cmd里面print替换了,并没有在文件中进行替换,需要另外写文件才行
cell.text=b
i+=1
print('共执行了{}次'.format(i))
tihuan(doc,'MMMM技术有限公司', 'XXXX科技股份有限公司')
有空继续修改重新生成文件,格式处理再试试