Heim > Backend-Entwicklung > Python-Tutorial > So erstellen Sie ein auf Python basierendes Dateidekomprimierungstool

So erstellen Sie ein auf Python basierendes Dateidekomprimierungstool

PHPz
Freigeben: 2023-05-13 13:43:21
nach vorne
1761 Leute haben es durchsucht

Aufgrund der unterschiedlichen Komprimierungsformate müssen Sie beim Dekomprimieren von Dateien häufig unterschiedliche Dekomprimierungstools herunterladen, um unterschiedliche Dateien zu verarbeiten, sodass drei oder vier Komprimierungstools auf dem Desktop vorhanden sind. Daher habe ich Python verwendet, um eines zu erstellen. Enthält kleine Tools zum Dekomprimieren Dateien in verschiedenen gängigen Formaten.

So erstellen Sie ein auf Python basierendes Dateidekomprimierungstool

Die gängigen Komprimierungsformate sind hauptsächlich die folgenden vier Formate:

Komprimierte Dateien im Zip-Format werden im Allgemeinen mit einer 360-Komprimierungssoftware dekomprimiert.

Komprimierte Dateien im tar.gz-Format werden im Allgemeinen mit dem Befehl tar auf Linux-Systemen dekomprimiert.

Komprimierte Dateien im RAR-Format werden im Allgemeinen mit einer RAR-Komprimierungssoftware dekomprimiert.

Komprimierte Dateien im 7z-Format werden im Allgemeinen mit der 7-Zip-Komprimierungssoftware dekomprimiert.

Importieren Sie eine nicht standardmäßige Bibliothek für die Dekomprimierungsverarbeitung im ZIP-Format.

import os
import zipfile as zip
Nach dem Login kopieren

Schreiben Sie die Dateikomprimierungsfunktion im Zip-Dekomprimierungsformat.

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()
Nach dem Login kopieren

Schreiben Sie eine Dateidekomprimierungsfunktion im Zip-Dekomprimierungsformat.

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()
Nach dem Login kopieren

Importieren Sie eine nicht standardmäßige Bibliothek für die Dekomprimierungsverarbeitung im 7z-Format.

import py7zr
Nach dem Login kopieren

Dateikomprimierungsfunktion im 7z-Dekomprimierungsformat schreiben.

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_)
Nach dem Login kopieren

Schreiben Sie eine Dateidekomprimierungsfunktion im 7z-Dekomprimierungsformat.

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

Importieren Sie eine nicht standardmäßige Bibliothek für die Dekomprimierungsverarbeitung im RAR-Format.

import rarfile as rar
Nach dem Login kopieren

Schreiben Sie eine Dateidekomprimierungsfunktion im RAR-Dekomprimierungsformat.

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'))
Nach dem Login kopieren

Kommen wir zur Sache. Nutzen Sie zunächst die Druckfunktion, um die Menüoptionen auszudrucken, die es dem Benutzer ermöglichen, nach dem Start der Software Menüauswahlen zu treffen.

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

Verwenden Sie die Eingabefunktion, um das vom Benutzer eingegebene Dateidekomprimierungsformat zu empfangen.

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

Verwenden Sie die Eingabefunktion, um den vom Benutzer eingegebenen Dateioperationstyp (Komprimierung/Dekomprimierung) zu empfangen.

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

Verwenden Sie die Eingabefunktion, um den Dateipfad zu erhalten, der vom Benutzer eingegeben werden muss.

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

Verwenden Sie die Eingabefunktion, um Benutzereingaben für den Zielpfad der generierten neuen Datei zu erhalten.

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

Um die Flexibilität der Eingabe aufrechtzuerhalten, fügen Sie Geschäftsurteile in verschiedenen Formaten und unterschiedlichen Vorgangstypen hinzu.

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_)
Nach dem Login kopieren

Derzeit werden die Funktionspunkte in drei Formaten erstellt. Bei Bedarf kann die aktuelle Version später erweitert und aktualisiert werden.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein auf Python basierendes Dateidekomprimierungstool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage