最近做数据预处时,需要将提取Excel中的图像,为了保证提取出来的图像质量,需要先将'.xlsx文件都重命名为'.zip'文件,在该zip文件中'xl\media'路径下就存放着所需要的图像文件,如下图所示。
重命名的代码如下:
import os
path = r'C:\workspace\data'
count = 1
for file in os.listdir(path):
new_file = file.replace(".xlsx",".zip")
os.rename(os.path.join(path,file),os.path.join(path,new_file))
count+=1
之后要做的就是将.zip文件里的图像读取出来并保存,直接看如下代码
import zipfile
import os
from PIL import Image
import numpy as np
number = 0
craterDir = "data/" # 存放zip文件的文件夹路径
saveDir = "images/" # 存放图片的路径
list_dir = os.listdir(craterDir) # 获取所有的zip文件名
for zip_name in list_dir:
print(zip_name)
# 默认模式r,读
azip = zipfile.ZipFile(craterDir + zip_name)
# 返回所有文件夹和文件
namelist = (azip.namelist())
for idx in range(0,len(namelist)):
if namelist[idx][:9] == 'xl/media/':#图片是在这个路径下
img_name = saveDir + str(number)+'.jpg'
f = azip.open(namelist[idx])
img = Image.open(f)
img = img.convert("RGB")
img.save(img_name,"JPEG")
number += 1
参考资料:
http://www.360doc.com/content/18/0924/09/30153390_789233158.shtml