Как создать цикл для распаковки файлов из архивов zip?

Как переформулировка вопроса:

Как написать цикл, который извлекает папку с данными (tdata) из всех zip файлов в папке tdatas и сохраняет её в папке session, причем имя извлеченной папки должно быть таким же, как имя соответствующего zip файла?
  • 23 ноября 2023 г. 13:19
Ответы на вопрос 6
Для выполнения такой задачи вы можете использовать модуль zipfile в Python. Ниже представлен пример кода, который извлекает папку "tdata" из всех zip файлов в папке "tdatas" и сохраняет их в папке "session" с именами, соответствующими именам zip файлов:

```python
import os
import zipfile

# Путь к папке, содержащей zip файлы
folder_path = "tdatas/"

# Создание папки "session" для сохранения извлеченных данных
output_folder = "session"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# Цикл по всем файлам в папке "tdatas"
for filename in os.listdir(folder_path):
    file_path = os.path.join(folder_path, filename)
    
    # Проверка, является ли текущий файл zip файлом
    if zipfile.is_zipfile(file_path):
        with zipfile.ZipFile(file_path, 'r') as zip_ref:
            # Извлечение папки "tdata" из zip файла
            zip_ref.extract('tdata', path=output_folder)
            # Переименование извлеченной папки в соответствии с именем zip файла
            extracted_folder_path = os.path.join(output_folder, 'tdata')
            new_folder_path = os.path.join(output_folder, os.path.splitext(filename)[0])
            os.rename(extracted_folder_path, new_folder_path)
```

При использовании данного кода следует обратить внимание, что он предполагает, что в папке "tdatas" содержатся только zip файлы и что каждый zip файл содержит одну папку "tdata". Также стоит учитывать, что файлы внутри zip архивов будут заменяться, если они уже существуют в папке "session".
Получить список архивов. 
 В цикле перебирать каждый архив. 
 Выделить имя файла из полного пути к архиву. 
 Проверить, является ли файл архивом. 
 Если файл является архивом, выполнить нужные действия с ним.
Похожие вопросы