Распакуйте несколько zip-файлов в разные папки с определенным именем - PullRequest
1 голос
/ 14 марта 2020

У меня есть папка с 2500 zip-файлами, я хочу, чтобы каждый zip-файл был разархивирован и помещен в папку с именем.

Ниже я попробовал. Но я получил эту ошибку KeyError: «Там нет имени элемента. Пожалуйста, предложите.

Спасибо.

dir_name = 'March_2020_banners'
extension = ".zip"
new_dir = 'Unzipped_files'#
list containing all directories, note list dir returns a list
entries = os.listdir('March_2020_banners/')


# Extract all zip files


def extract_zip_Files():
  os.chdir(dir_name)# change directory from working dir to dir with files
  for item in entries: #loop through items in dir
  if item.endswith(extension):

    file_name = os.path.abspath(item)# get full path of files
    print('file is', file_name)
    zip_ref = zipfile.ZipFile(file_name)# create zipfile object
    zip_ref.extract(file_name, new_dir)# extract file to dir
    zip_ref.close()# close file


extract_zip_Files()

1 Ответ

0 голосов
/ 14 марта 2020

Ну, у меня есть решение для этого. Вот что я сделал, и это сработало.

def extract_zip_Files():
    os.chdir(dir_name)  # change directory from working dir to dir with files
    for item in entries:  # loop through items in dir
        if item.endswith(extension):  # check for ".zip" extension
            file_name = os.path.abspath(item)  # get full path of files
            print('file is', file_name)
            zip_ref = zipfile.ZipFile(file_name)  # create zipfile object
            zip_ref.extractall(cwd+"/unZipped/"+item)  # extract file to dir
            zip_ref.close()  # close file
...