📜  循环遍历文件夹以提取 zip winrar python (1)

📅  最后修改于: 2023-12-03 15:09:52.433000             🧑  作者: Mango

循环遍历文件夹以提取 zip winrar python

在编程中,经常需要对文件夹下的多个文件进行操作。本文将介绍如何使用 Python 循环遍历文件夹以提取 zip 和 winrar 文件。这将帮助开发人员减少手动操作和提高效率。

1. 遍历文件夹

使用 Python 的 os 模块可以轻松地遍历文件夹中的文件。以下代码演示了如何遍历文件夹中的所有文件,并将它们以一个列表的形式返回。

import os

def get_files_in_folder(folder_path):
    files = []
    for path, dirs, filenames in os.walk(folder_path):
        for filename in filenames:
            files.append(os.path.join(path, filename))
    return files
2. 提取 zip 文件

Python 的 zipfile 模块提供了处理 zip 文件的 API。以下代码演示了如何提取 zip 文件中的所有文件。

import zipfile

def extract_zip_file(zip_path, extract_path):
    with zipfile.ZipFile(zip_path, 'r') as zip_file:
        zip_file.extractall(extract_path)
3. 提取 winrar 文件

Python 的 rarfile 模块提供了处理 winrar 文件的 API。以下代码演示了如何提取 winrar 文件中的所有文件。

import rarfile

def extract_winrar_file(rar_path, extract_path):
    with rarfile.RarFile(rar_path, 'r') as rar_file:
        rar_file.extractall(extract_path)
4. 完整代码

以下代码演示了如何遍历文件夹并提取其中的 zip 和 winrar 文件。

import os
import zipfile
import rarfile

def get_files_in_folder(folder_path):
    files = []
    for path, dirs, filenames in os.walk(folder_path):
        for filename in filenames:
            files.append(os.path.join(path, filename))
    return files

def extract_zip_file(zip_path, extract_path):
    with zipfile.ZipFile(zip_path, 'r') as zip_file:
        zip_file.extractall(extract_path)

def extract_winrar_file(rar_path, extract_path):
    with rarfile.RarFile(rar_path, 'r') as rar_file:
        rar_file.extractall(extract_path)

if __name__ == '__main__':
    folder_path = '/path/to/folder'
    extract_path = '/path/to/extract'
    files = get_files_in_folder(folder_path)
    for file in files:
        if file.endswith('.zip'):
            extract_zip_file(file, extract_path)
        elif file.endswith('.rar'):
            extract_winrar_file(file, extract_path)

以上代码可以将文件夹下所有的 zip 和 winrar 文件提取出来,并存储至指定目录。这种方式可以将繁琐的操作自动化,使得开发人员可以更专注于业务逻辑的实现。