Cara membuat alat penyahmampatan fail berdasarkan Python

PHPz
Lepaskan: 2023-05-13 13:43:21
ke hadapan
1701 orang telah melayarinya

Disebabkan oleh format pemampatan yang berbeza, selalunya perlu memuat turun alat penyahmampatan yang berbeza untuk memproses fail yang berbeza apabila menyahmampat fail Akibatnya, terdapat tiga atau empat jenis alat pemampatan pada desktop, jadi saya menggunakan python untuk melakukannya ia. Alat kecil untuk menyahmampat fail dalam pelbagai format biasa.

Cara membuat alat penyahmampatan fail berdasarkan Python

Format pemampatan biasa adalah terutamanya empat format berikut:

Fail mampat format zip biasanya dinyahmampat menggunakan perisian pemampatan 360.

Fail termampat dalam format tar.gz biasanya dinyahmampat menggunakan arahan tar pada sistem Linux.

Fail mampat dalam format rar biasanya dinyahmampat menggunakan perisian mampatan rar.

Fail mampat dalam format 7z biasanya dinyahmampat menggunakan perisian mampatan 7-zip.

Import perpustakaan bukan standard untuk pemprosesan penyahmampatan dalam format zip.

import os
import zipfile as zip
Salin selepas log masuk

Tulis fungsi pemampatan fail dalam format penyahmampatan 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()
Salin selepas log masuk

Tulis fungsi penyahmampatan fail dalam format penyahmampatan 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()
Salin selepas log masuk

Import perpustakaan bukan standard untuk pemprosesan penyahmampatan dalam format 7z.

import py7zr
Salin selepas log masuk

Tulis fungsi pemampatan fail dalam format penyahmampatan 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_)
Salin selepas log masuk

Tulis fungsi penyahmampatan fail dalam format penyahmampatan 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_)
Salin selepas log masuk

Import perpustakaan bukan standard untuk pemprosesan penyahmampatan dalam format rar.

import rarfile as rar
Salin selepas log masuk

Tulis fungsi penyahmampatan fail dalam format penyahmampatan 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'))
Salin selepas log masuk

Mula-mula, gunakan fungsi cetakan untuk mencetak pilihan menu, yang membolehkan pengguna membuat pilihan menu selepas memulakan perisian.

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

Gunakan fungsi input untuk menerima input format penyahmampatan fail oleh pengguna.

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

Gunakan fungsi input untuk menerima input pengguna bagi jenis operasi fail (mampatan/penyahmampatan).

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

Gunakan fungsi input untuk menerima laluan fail yang perlu dikendalikan input oleh pengguna.

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

Gunakan fungsi input untuk menerima input pengguna bagi laluan sasaran bagi fail baharu yang dijana.

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

Untuk mengekalkan fleksibiliti input, pertimbangan perniagaan dalam format yang berbeza dan jenis operasi yang berbeza ditambah.

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_)
Salin selepas log masuk

Titik fungsi semasa adalah untuk mencipta tiga format Jika perlu kemudian, versi semasa boleh dikembangkan dan dinaik taraf.

Atas ialah kandungan terperinci Cara membuat alat penyahmampatan fail berdasarkan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan