整個功能實現最重要的模塊是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文件表格里的內容,不能替換正文內容
