Vorrei decomprimere un file .7z. Secondo questo question posso usare il pacchetto lzma per fare questo.Python3: lzma unpack .7z file
mi aspettavo qualcosa di simile
import lzma
#...
with lzma.open('myFile.7z') as f:
f.extractall('.')
Per estrarre il file nella directory corrente, ma sembra qualcosa di simile non esiste. Inoltre, provare qualcosa come
import lzma
#...
with lzma.open('myFile.7z') as f:
file_content = f.read()
print(file_content)
ha prodotto _lzma.LZMAError: Input format not supported by decoder
. Come posso controllare il formato? E sono abbastanza sorpreso perché ho pensato che sia 7zip che il formato .7z siano open source e Python dovrebbe supportare tutto.
Ho visto molte risposte in cui le persone stavano solo chiamando l'eseguibile 7zip con un sottoprocesso ma questo non è ciò che voglio fare. Sto cercando una semplice soluzione python3.
FYI: libarchive ha associazioni per python. Sono stato in grado di estrarre i file 7z usando libarchive. Se questa funzione è disponibile nei collegamenti Python non ho testato. Ma vale la pena provare. – Marcus