Hvorfor konvertere PYC til PY?
Hovedårsagen er gendannelse af kildekode, når den originale .py blev slettet eller aldrig leveret sammen med bytecoden. En sekundær brug er revision af programmer, der distribueres som ren bytecode. Dette er dekompilering snarere end en ren formatkonvertering - en .pyc gemmer kompileret bytecode, og den originale kildetekst bevares ikke indeni den.
Sådan konverterer du PYC til PY
decompyle3 FREE
Installer med pip install decompyle3 og kør decompyle3 dinfil.pyc > recovered.py. Understøtter Python 3.7-3.8.
uncompyle6 FREE
Installer med pip install uncompyle6 og kør uncompyle6 dinfil.pyc > recovered.py. Håndterer Python 2.x til og med 3.8.
pycdc OPEN-SOURCE
Download den binære fil fra github.com/zrax/pycdc og kør pycdc dinfil.pyc > recovered.py. Bedste mulighed for Python 3.9 og nyere, selvom nøjagtigheden på 3.11+ er begrænset.
Om disse formater
En .pyc-fil er kompileret Python bytecode, som CPython gemmer automatisk for at fremskynde opstart. Du behøver normalt ikke at åbne eller røre den. For at køre en skal du bruge den…
Åbn .PYC detaljer →En .py-fil er en Python kildekodefil - almindelig tekst, der indeholder et program eller script skrevet i Python-sproget. For at læse koden skal du åbne den i et hvilket som helst…
Åbn .PY detaljer →Kvalitet & hvad man skal være opmærksom på
- Kommentarer er permanent væk - Python bytecode gemmer dem ikke; intet værktøj kan gendanne dem fra en
.pycuanset Python-version. - Dekompileringsnøjagtigheden falder drastisk for Python 3.9 og nyere; pycdc er den bedste indsats for nyere bytecode, men kan producere ufuldstændigt output.
- Hvis
.pyc-filen var obfuskeret, vil dekompilering mislykkes eller returnere tomt output;python3 -m dis dinfil.pyckan stadig vise individuelle bytecode-instruktioner som en nødløsning.
Ofte stillede spørgsmål
Hvordan ved jeg, hvilken Python-version der kompilerede .pyc-filen?
.pyc-filer i __pycache__ som module.cpython-311.pyc - tallet angiver den Python-version, der kompilerede den.Overlever docstrings dekompilering?
Hvad hvis dekompileren producerer fejl eller tomt output?
.pyc-filen kan være obfuskeret eller fra en ikke-understøttet Python-version; prøv et andet værktøj eller brug python3 -m dis til at inspicere individuelle bytecode-instruktioner.