from zipfile import ZipFile, ZIP_DEFLATED
from io import BytesIO


def stream_conents(src_zip, dst_zip, file_subset_list):
    with ZipFile(src_zip, "r", compression=ZIP_DEFLATED) as src_zip_archive:
        with ZipFile(dst_zip, "w", compression=ZIP_DEFLATED) as dst_zip_archive:
            for zitem in src_zip_archive.namelist():
                if zitem in file_subset_list:
                    zitem_object = src_zip_archive.open(zitem)
                    print(type(zitem_object))
                    dst_zip_archive.write(zitem_object)

stream_conents(
    r"E:\!temp\!test\D\054764368220_01.zip",
    "E:\!temp\!test\D\054764368220_01_new.zip",
    ['GIS_FILES/054764368220_01_ORDER_SHAPE.prj', ])
