[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()
|