>  기사  >  백엔드 개발  >  Python을 기반으로 파일 압축 해제 도구를 만드는 방법

Python을 기반으로 파일 압축 해제 도구를 만드는 방법

PHPz
PHPz앞으로
2023-05-13 13:43:211626검색

종종 압축 형식이 다르기 때문에 파일을 압축 해제할 때 다양한 파일을 처리하기 위해 다양한 압축 해제 도구를 다운로드해야 하므로 데스크탑에는 3~4가지 유형의 압축 도구가 있으므로 Python을 사용하여 하나를 만들었습니다. 다양한 일반 형식의 파일 압축을 풉니다.

Python을 기반으로 파일 압축 해제 도구를 만드는 방법

일반적인 압축 형식은 주로 다음 네 가지 형식입니다.

Zip 형식의 압축 파일은 일반적으로 360 압축 소프트웨어를 사용하여 압축을 풉니다.

tar.gz 형식의 압축 파일은 일반적으로 Linux 시스템에서 tar 명령을 사용하여 압축을 풉니다.

Rar 형식의 압축 파일은 일반적으로 rar 압축 소프트웨어를 사용하여 압축을 풉니다.

7z 형식의 압축 파일은 일반적으로 7-zip 압축 소프트웨어를 사용하여 압축을 풉니다.

압축 해제 처리를 위한 비표준 라이브러리를 zip 형식으로 가져옵니다.

import os
import zipfile as zip

zip 압축 해제 형식의 파일 압축 기능을 작성하세요.

def do_zip(source_, target_file):
    '''
    zip文件压缩
    :param source_: 原始文件路径
    :param target_file: 目标文件路径
    :return:
    '''
    zip_file = zip.ZipFile(target_file, 'w')
    pre_len = len(os.path.dirname(source_))
    for parent, dirnames, filenames in os.walk(source_):
        for filename in filenames:
            print(f'{filename}')
            path_file = os.path.join(parent, filename)
            arcname = path_file[pre_len:].strip(os.path.sep)
            zip_file.write(path_file, arcname)

    zip_file.close()

zip 압축 해제 형식으로 파일 압축 해제 기능을 작성하세요.

def un_zip(source_file, target_):
    '''
    zip文件解压缩
    :param source_file: 原始文件路径
    :param target_: 目标文件路径
    :return:
    '''
    zip_file = zip.ZipFile(source_file)
    if os.path.isdir(target_):
        pass
    else:
        os.mkdir(target_)
    for names in zip_file.namelist():
        zip_file.extract(names, target_)
    zip_file.close()

7z 형식의 압축 해제 처리를 위한 비표준 라이브러리를 가져옵니다.

import py7zr

7z 압축 해제 형식으로 파일 압축 기능을 작성하세요.

def do_7z(source_, target_file):
    '''
    7z文件压缩
    :param source_:
    :param target_file:
    :return:
    '''
    with py7zr.SevenZipFile(target_file, 'r') as file:
        file.extractall(path=source_)

7z 압축해제 형식으로 파일 압축해제 기능을 작성하세요.

def un_7z(source_file, target_):
    '''
    7z文件解压缩
    :param source_file:
    :param target_:
    :return:
    '''
    with py7zr.SevenZipFile(source_file, 'w') as file:
        file.writeall(target_)

rar 형식의 압축 해제 처리를 위한 비표준 라이브러리를 가져옵니다.

import rarfile as rar

rar 압축 해제 형식으로 파일 압축 해제 기능을 작성하세요.

def un_rar(source_file, target_):
    '''
    rar文件解压缩
    :param source_file: 原始文件
    :param target_: 目标文件路径
    :return:
    '''
    obj_ = rar.RarFile(source_file.decode('utf-8'))
    obj_.extractall(target_.decode('utf-8'))

먼저, 인쇄 기능을 사용하여 메뉴 옵션을 인쇄하세요. 그러면 사용자가 소프트웨어를 시작한 후 메뉴를 선택할 수 있습니다.

print('==========PYTHON工具:文件解压缩软件==========')
print('说明:目前支持zip、7z、rar格式')
print('1、文件解压缩格式:zip/rar/7z')
print('2、文件操作类型(压缩/解压):Y/N')
print('3、文件路径选择,需要输入相应的操作文件路径')
print('==========PYTHON工具:文件解压缩软件==========')

입력 기능을 사용하여 사용자가 입력한 파일 압축 해제 형식을 받습니다.

format_ = input('请输入文件解压缩的格式:\n')

입력 기능을 사용하여 사용자가 입력한 파일 작업 유형(압축/압축 풀기)을 받습니다.

type_ = input('请输入文件操作的类型:\n')

입력 기능을 사용하여 조작해야 하는 파일 경로를 사용자가 입력받습니다.

source_ = input('请输入原始文件的存储路径(文件或目录):\n')

생성된 새 파일의 대상 경로에 대한 사용자 입력을 받으려면 입력 기능을 사용하세요.

target_ = input('请输入目标文件的存储路径(文件或目录):\n')

입력의 유연성을 유지하려면 다양한 형식과 다양한 작업 유형으로 비즈니스 판단을 추가하세요.

if format_ == 'zip' and type_ == 'Y':
    do_zip(source_, target_)
elif format_ == 'zip' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'N':
    un_zip(source_, target_)

현재 기능포인트는 3가지 형식으로 제작되어 있으며 추후 필요에 따라 현재 버전이 확장 및 업그레이드될 수 있습니다.

위 내용은 Python을 기반으로 파일 압축 해제 도구를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제