Ich möchte eine .7z-Datei entpacken. Entsprechend diesem question kann ich das lzma Paket verwenden, um dies zu tun.Python3: lzma entpacken .7z Datei
Ich erwartete etwas wie
import lzma
#...
with lzma.open('myFile.7z') as f:
f.extractall('.')
Um die Datei in das aktuelle Verzeichnis zu extrahieren, aber es scheint so etwas wie dieses gibt es nicht. Des Weiteren versucht hat _lzma.LZMAError: Input format not supported by decoder
so etwas wie
import lzma
#...
with lzma.open('myFile.7z') as f:
file_content = f.read()
print(file_content)
zu ergeben. Wie kann ich das Format prüfen? Und ich bin ziemlich überrascht, weil ich dachte, 7zip und das .7z-Format sind Open Source und Python sollte alles unterstützen.
Ich sah eine Menge Antworten, wo Leute nur die 7zip ausführbare Datei mit einem Subprozess aufrufen, aber das ist nicht wollen ich tun möchte. Ich suche eine einfache python3-Lösung.
FYI: libarchive hat Bindungen für Python. Ich konnte mit libarchive 7z-Dateien extrahieren. Wenn diese Funktion in den Python-Bindungen verfügbar ist, die ich nicht getestet habe. Aber es ist einen Versuch wert. – Marcus