吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1843|回复: 14
收起左侧

[Python 原创] python-docx操作word文档

  [复制链接]
Eks6666 发表于 2023-8-8 22:23
[Python] 纯文本查看 复制代码
import os
import re
import os.path as osp
from PIL import Image
import shutil
from docx import Document
from docx.shared import Inches,Pt
import pandas as pd
path=os.getcwd()
reg1=re.compile(r'.*(.jpg)$')

#1、获取照片路径列表
def file_path():
	"""
	获取当前工作路径下所有照片绝对路径,并存放在一个列表内
	"""
	file_path=[]#照片文件路径列表
	for dirpath,dirname,filenames in os.walk(path):
		list_j= [osp.join(dirpath,x) for x in filenames if osp.isfile(osp.join(dirpath,x))													
														if reg1.findall(x)] #获取图片的文件名,并拼接完整路径
		for s in list_j:
			if s:#非空
				file_path.append(s)

	return file_path


#2、压缩照片
def yasuo():
	"""
	压缩照片		
	#照片文件目录名与照片文件路径组成键值对字典,构造DataFrame结构
	"""
	dic={}
	for i in range(len(file_path())):
		name,exc=osp.split(file_path()[i])
		nam=osp.basename(name)
		dic[nam]=[osp.join(name,exc) for exc in os.listdir(name) if osp.isfile(osp.join(name,exc))
																 if reg1.findall(exc)]

	for key,item in dic.items():
		print(f"开始压缩:{key}文件夹内的照片..")
		for file in item:
			im = Image.open(file)
			(x,y) = im.size 
			x_s = 2000 
			y_s = int(y * x_s / x) 
			out = im.resize((x_s,y_s),Image.Resampling.LANCZOS) 
			out.save(file)#原路径保存

			na,ex=osp.split(file)
			print(f'{ex}-压缩完成')			
		print()


#3、根据挂牌清单生成挂牌照片文件夹
def create_picture_dir():
	df=pd.read_excel(r"G:\桌面\22年14批预算\22年14批-挂牌清单.xlsx",header=1)
	ds=df[~df["光缆段落名(A端-B端)"].isna()]
	di=ds.copy()
	di["光缆段落名(A端-B端)"]=di["光缆段落名(A端-B端)"].str.replace("/","-")
	lst=di["光缆段落名(A端-B端)"].tolist()

	for i in range(len(lst)):
		pt=osp.join(path,str(i+1)+"."+lst[i])
		if not osp.exists(pt):
			os.mkdir(pt)
			print(f'{lst[i]}文件夹已生成..')
	print()
	

#4、光缆挂牌报告文档
def baogao():
	dic = {} 
	for i in range(len(file_path())):
	    name, exc = osp.split(file_path()[i])  
	    nam = osp.basename(name)
	    dic[nam] = [osp.join(name, exc) for exc in os.listdir(name) if osp.isfile(osp.join(name, exc))
	                if reg1.findall(exc)]  

	doc=Document()
	doc.add_heading("2022年第14批光缆成端处挂牌照片",level=0)
	for key,item in dic.items():
		doc.add_paragraph(key)
		for i in range(len(item)):
			try:
				doc.add_picture(item[i],width=Pt(300))
			except:
				pass

	doc.save("终端盒成端处挂牌照片.docx")



baogao()

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
roboto + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

roboto 发表于 2023-8-8 23:22
学到了学到了
xiaopeng128 发表于 2023-8-9 00:15
hnwang 发表于 2023-8-9 07:33
wqf02 发表于 2023-8-9 08:55
学习一下
shikongliangze 发表于 2023-8-9 08:58
学习学习,提高自己,感谢分享
wfyngj 发表于 2023-8-9 08:58
每次看别爬的溜
gailium 发表于 2023-8-9 09:31
没办法操作doc文档吗
haoiss 发表于 2023-8-9 09:37
保留,备用,感谢
 楼主| Eks6666 发表于 2023-8-9 09:37
gailium 发表于 2023-8-9 09:31
没办法操作doc文档吗

铁子,操作doc文档要用pywin32
可以先把doc转成docx文档
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表