|

楼主 |
发表于 2023-2-11 08:32:50
|
显示全部楼层
你这个是写入,读取的话怎么搞,昨天我网上找了一下类似情况的,也是用zipfile压缩后,去xl\media下找图片,但是压缩是成功了,但是提取图片出问题了,这是网上的,我就是修改了一下路径,然后就报错了。报错内容Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新建文本文档.py", line 31, in <module>
img = Image.open(f)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\PIL\Image.py", line 3283, in open
raise UnidentifiedImageError(msg)
PIL.UnidentifiedImageError: cannot identify image file <zipfile.ZipExtFile name='xl/media/' mode='r'
希望大佬指点一下
- import os
- import zipfile
- import os
- from PIL import Image
- import numpy as np
- path = r'C:/Users/Administrator/Desktop/'
- 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
- print('总共有'+str(count)+'个文件夹')
- number = 0
- craterDir = "C:/Users/Administrator/Desktop/" # 存放zip文件的文件夹路径
- saveDir = "C:/Users/Administrator/Desktop/" # 存放图片的路径
- list_dir = os.listdir(craterDir)
- for i in range(len(list_dir)):
- if 'zip' not in list_dir[i]:
- list_dir[i] = ''
- while '' in list_dir:
- list_dir.remove('')
- for zip_name in list_dir:
- print(zip_name)
- 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],'r')
- img = Image.open(f)
- img = img.convert("RGB")
- img.save(img_name,"JPEG")
- number += 1
- azip.close() #关闭文件,必须有,释放内存
复制代码 |
|