import os
from win32com import client as wc
file_path =r"D:\ChenKunMingWorkInformation\9.3.3无锡市古树名木资源普查统计表(2020)\9.3.3无锡市古树名木资源普查统计表(2020)"for i in os.listdir(file_path):for j in os.listdir(file_path+"/"+i):print(j)
word = wc.Dispatch("Word.Application")
doc = word.Documents.Open(file_path+"/"+i+"/"+j)
doc.SaveAs(r"D:\ChenKunMingWorkInformation\docx"+j.split(".")[0]+".docx",12)
2.循环打开.docx文件提取图片并存储
import os
import random
import re
import time
import psycopg2
from docx import Document
# 获取当前时间戳
timestamp =int(time.time())# 保存图片路径
result_path =r"C:\Users\CHENKUNMING\Documents\image"# 打开的docx
file_path =r"C:\Users\CHENKUNMING\Documents"# 循环文件列表获取文件名for i in os.listdir(file_path):# 获取有关.docx结尾文件并且排除掉~$的文件if".docx"in i and"~$"notin i:print(i)# 文件名以.截取取前部分
name = i.split(".")[0]# 根据前部分获取数字编号
bh = re.findall(r'\d+', name)[0]# 打开docx文件
doc = Document(file_path +"\\"+ i)
dict_rel = doc.part._rels
for rel in dict_rel:
rel = dict_rel[rel]if"image"in rel.target_ref:# 生成文件名
img_name =''.join(random.choices('0123456789', k=10))
img_name_date =str(timestamp)+"-"+ img_name +".png"# 判断 文件夹是否存在 如果不存在 则:ifnot os.path.exists(result_path):
os.makedirs(result_path)
word_name = os.path.splitext("word_path")[0]withopen(f'{result_path}/{img_name_date}',"wb")as f:# 写入
f.write(rel.target_part.blob)else:withopen(f'{result_path}/{img_name_date}',"wb")as f:
f.write(rel.target_part.blob)# update postgresql image name
conn = psycopg2.connect(
host="127.0.0.1",
database="test",
user="root",
password="123456")with conn.cursor()as cursor:
cursor.execute("update gsmm set photo = %s where gsbh = %s",(img_name_date, bh))
conn.commit()