[英]How to read files in a folder within a zipped folder in Python
我有一个压缩文件夹,其中包含一个子文件夹,该子文件夹中有大约 60000 多个图像。 我想知道是否有办法读取子文件夹中的所有图像而不提取它(因为图像文件夹的大小约为 100GB)。
我正在考虑在 python 中使用 zipfile 包。但是我将无法在模块中使用 open 函数,因为我不知道如何遍历整个子文件夹。 如果您能向我提供有关如何执行此操作的任何意见,那就太好了
with zipfile.ZipFile("/home/diliptmonson/abc.zip","r") as zip_ref:
train_images=zip_ref.open('train/86760c00-21bc-11ea-a13a-137349068a90.jpg')```
您可以使用以下解决方案:
.jpg
。cv2.imdecode
将二进制数据解码为图像。这是代码:
from zipfile import ZipFile
import numpy as np
import cv2
import os
# https://thispointer.com/python-how-to-get-the-list-of-all-files-in-a-zip-archive/
with ZipFile("abc.zip", "r") as zip_ref:
# Get list of files names in zip
list_of_files = zip_ref.namelist()
# Iterate over the list of file names in given list & print them
for elem in list_of_files:
#print(elem)
ext = os.path.splitext(elem)[-1] # Get extension of elem
if ext == ".jpg":
# Read data in case extension is ".jpg"
in_bytes = zip_ref.read(elem)
# Decode bytes to image.
img = cv2.imdecode(np.fromstring(in_bytes, np.uint8), cv2.IMREAD_COLOR)
# Show image for testing
cv2.imshow('img', img)
cv2.waitKey(1000)
cv2.destroyAllWindows()
使用 for 循环:
# namelist lists all files
for file in zip_ref.namelist():
opened_file = zip_ref.open(file)
# do stuff with your file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.