Hvorfor konvertere PYC til PY?
Hovedårsaken er gjenoppretting av kildekode når den opprinnelige .py-filen ble slettet eller aldri levert sammen med bytekoden. En sekundær bruk er revisjon av programmer distribuert kun som bytekode. Dette er dekompilering snarere enn en ren formatkonvertering - en .pyc lagrer kompilert bytekode, og den opprinnelige kildeteksten er ikke bevart i den.
Hvordan konvertere PYC til PY
decompyle3 FREE
Installer med pip install decompyle3 og kjør decompyle3 yourfile.pyc > recovered.py. Støtter Python 3.7-3.8.
uncompyle6 FREE
Installer med pip install uncompyle6 og kjør uncompyle6 yourfile.pyc > recovered.py. Håndterer Python 2.x til og med 3.8.
pycdc OPEN-SOURCE
Last ned binærfilen fra github.com/zrax/pycdc og kjør pycdc yourfile.pyc > recovered.py. Beste alternativ for Python 3.9 og nyere, selv om nøyaktigheten på 3.11+ er begrenset.
Om disse formatene
En .pyc-fil er kompilert Python-bytecode som CPython bufrer automatisk for å øke hastigheten på oppstarten. Du trenger vanligvis ikke å åpne eller røre den. For å kjøre en, bruk den…
Åpne .PYC-detaljer →En .py-fil er en kildekodefil for Python - ren tekst som inneholder et program eller skript skrevet i språket Python. For å lese koden, åpne den i et hvilket som helst…
Åpne .PY-detaljer →Kvalitet og hva du bør passe på
- Kommentarer er permanent borte - Python-bytekode lagrer dem ikke; ingen verktøy kan gjenopprette dem fra en
.pycuavhengig av Python-versjon. - Nøyaktigheten ved dekompilering faller kraftig for Python 3.9 og nyere; pycdc er det beste forsøket for nyere bytekode, men kan produsere ufullstendige resultater.
- Hvis
.pyc-filen var obfuskert, vil dekompilering mislykkes eller returnere tomt resultat;python3 -m dis yourfile.pyckan fortsatt vise individuelle bytekode-instruksjoner som en nødløsning.
Ofte stilte spørsmål
Hvordan vet jeg hvilken Python-versjon som kompilerte .pyc-filen?
.pyc-filer i __pycache__ navngitt som module.cpython-311.pyc - tallet indikerer Python-versjonen som kompilerte den.Overlever docstrings dekompilering?
Hva om dekompilereren produserer feil eller tomt resultat?
.pyc-filen kan være obfuskert eller fra en Python-versjon som ikke støttes; prøv et annet verktøy eller bruk python3 -m dis for å inspisere individuelle bytekode-instruksjoner.