简体   繁体   中英

Extract all files from a zipped folder inside a directory to other directory without folder using python

# importing required modules
from zipfile import ZipFile

# specifying the zip file name

file_name = "C:\\OPR\\109521P.zip"

# opening the zip file in READ mode
 with ZipFile(file_name, 'r') as zip:
 # printing all the contents of the zip file
  result =zip.printdir()

  # extracting all the files
  print('Extracting all the files now...')
  zip.extractall('images')
  print('Done!')

I have around 10 images zipped inside a sub folder in a zipped folder , now i want to extract all the images directly to other directory without the sub folders , I have tried using os.path.basename(name) , but i'm getting severel errors.

After the above code , I', getting all images inside a folder ,,

C:\\images\\109521P

Above is the output location where all 10 images are being extracted , Now i want the images to be directly extracted at

C:\\images

So i want to omit the sub folder 109521P and want the images to be directly extracted at above loaction.

my_dir = r"C:\OPR"
my_zip = r"C:\OPR\109521P.zip"

with zipfile.ZipFile(my_zip) as zip_file:
   for member in zip_file.namelist():
    filename = os.path.basename(member)
    # skip directories
    if not filename:
        continue

    # copy file (taken from zipfile's extract)
    source = zip_file.open(member)
    target = open(os.path.join(my_dir, filename), "wb")
    with source, target:
        shutil.copyfileobj(source, target)

I got the answer , just posting it

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM