Dezarhivarea formatului '.rar' in python

Salutare,

Am asa o problema, ca as dori sa dezarhivez fisiere in format .rar.

  • Chiar daca fac rename la arhiva nu merge din rar in zip, nu stiu daca face sa fac convertire din rar in zip la un fisier de 5 Gb.

  • Am reusit sa lucrez doar cu modulul zipfile,

    with zipfile.ZipFile('d:/raport.zip', 'r') as zip_ref:
        zip_ref.extractall('d:/')
  • Evident ca am gasit si in comanda de la windows, doar cand o execut in python
os.system("unrar e raport.rar")

Imi da eroarea ca nu pot utiliza aceasta comanda inafara comenzii

Aveti vreo idee de dezarhivare pentru format .rar ?

Chiar daca fac rename la arhiva nu merge din rar in zip, nu stiu daca face sa fac convertire din rar in zip la un fisier de 5 Gb.

Nu tine de dimensiunea fisierului, redenumire nu implica conversie.
La prima cautare pe ddg apare pyunpack, care foloseste doua backends: zipfile nativ, si patool care foloseste binare externe (din PATH) pentru comenzi.

os.system(“unrar e raport.rar”)

Verifica sa ai locatia dosarului unrar in PATH. Vad ca lucrezi cu locatii de Windows, deci fie adaugi dosarul in care se afla unrar.exe in PATH, fie folosesti path absolut in os.system().

RAR este format proprietary, deci n-o sa prea gasesti implementari.

1 Like

Foloseste os/subprocess cu versiunea cli de la 7zip. Pt inspiratie poti sa te uiti aici https://github.com/ClimenteA/py7zip

Ms, de ajutor. cea mai buna este utilizarea unrar care trebuie atribuita in PATH. Asta a functionat la mine dupa ce am dat un reboot

E bun. Cu 7zip cli merge cand nu ai drepturi de administrator sa schimbi Path.

Da, dar vezi ca am fisiere in format .rar si nu prea sa imprieteneste asa cum ar trebui.