用python實現批量替換.doc文件文件內容


整個功能實現最重要的模塊是docx這個模塊

安裝語句

pip install python-docx

docx模塊只能操作.docx文件,所以在這之前我們要將.doc文件轉換成.docx。.doc文件是不能直接轉換成.docx文件的,如果直接改后綴名會引起文件打不開或者亂碼問題。

所以我們需要將文件另存為.docx格式。

import sys
import pickle
import re
import codecs
import string
import shutil
from win32com import client as wc
import docx
import os
 
path = "C:\\Users"#需修改文件所在文件夾
files = []#需修改文件列表
#讀取文件夾中文件列表
for file1 in os.listdir(path):
    if file1.endswith(".doc"):
        files.append(file1)
 
def doSaveAas(files):
    word = wc.Dispatch('Word.Application')
    for docname in files:
        temp='C:\\Users\\{}'.format(docname) 
        doc = word.Documents.Open(temp)        # 目標路徑下的文件
        new_world = docname + "x"
        doc.SaveAs(u'C:\\Users\\{}'.format(new_world), 12, False, "", True, "", False, False, False, False)  # 轉化后路徑下的文件    
        doc.Close()
    word.Quit()

doSaveAas(files)

轉化為docx文件后我們要來實現將指定目標替換的功能了,我需要實現的功能是將文件表格里的日期進行替換

import os
import docx

#讀取需要操作的文件的列表
path = "C:\\Users"
files = []#生成的文件隊列
for file1 in os.listdir(path):
    if file1.endswith(".docx"):
        files.append(path+"\\"+file1)

#替換詞
def exchange(docname,old_word,new_word):#old_word是將要被替換的詞,new_word是替換詞
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                cell.text = cell.text.replace(old_word,new_word)

for file2 in files: 
    doc = docx.Document(file2)        
    exchange(file2,"old_word","new_word")
    doc.save(file2)
    print("{}替換完成".format(file2))

這段代碼僅能替換docx文件表格里的內容,不能替換正文內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM