Heim >Backend-Entwicklung >Python-Tutorial >So erstellen Sie ein auf Python basierendes Dateidekomprimierungstool
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.
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
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()
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()
Importieren Sie eine nicht standardmäßige Bibliothek für die Dekomprimierungsverarbeitung im 7z-Format.
import py7zr
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_)
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_)
Importieren Sie eine nicht standardmäßige Bibliothek für die Dekomprimierungsverarbeitung im RAR-Format.
import rarfile as rar
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'))
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工具:文件解压缩软件==========')
Verwenden Sie die Eingabefunktion, um das vom Benutzer eingegebene Dateidekomprimierungsformat zu empfangen.
format_ = input('请输入文件解压缩的格式:\n')
Verwenden Sie die Eingabefunktion, um den vom Benutzer eingegebenen Dateioperationstyp (Komprimierung/Dekomprimierung) zu empfangen.
type_ = input('请输入文件操作的类型:\n')
Verwenden Sie die Eingabefunktion, um den Dateipfad zu erhalten, der vom Benutzer eingegeben werden muss.
source_ = input('请输入原始文件的存储路径(文件或目录):\n')
Verwenden Sie die Eingabefunktion, um Benutzereingaben für den Zielpfad der generierten neuen Datei zu erhalten.
target_ = input('请输入目标文件的存储路径(文件或目录):\n')
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_)
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!