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

PHPz
풀어 주다: 2023-05-13 13:43:21
앞으로
1612명이 탐색했습니다.

종종 압축 형식이 다르기 때문에 파일을 압축 해제할 때 다양한 파일을 처리하기 위해 다양한 압축 해제 도구를 다운로드해야 하므로 데스크탑에는 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으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!