TL;DR: Если вы запускали программу Python хотя бы один раз, как я, вы можете найти файл pyc в папке __pycache__ и использовать декомпилятор, чтобы декомпилировать его обратно в файл Python.
Недавно я начал проходить последний курс Harvard CS50 по искусственному интеллекту и только что закончил задание по программированию. Прежде чем отправить и отпраздновать свой успех, я случайно перезаписал файл и потерял часы работы. Оказалось, я дважды открывал один и тот же файл и случайно сохранил более раннюю версию.
Прежде чем я оплакивал свою потерю, я инстинктивно знал, что должен быть какой-то способ восстановить файл, потому что я запустил файл с помощью интерпретатора Python в терминале 5 секунд назад.
Я провел небольшое исследование и нашел решение: в папке __pycache__
вы увидите скомпилированный файл .pyc
, который скомпилирован интерпретатором. Мой degrees.cpython-36.pyc
Согласно документации Python:
Исходный код Python компилируется в байт-код, внутреннее представление программы Python в интерпретаторе CPython. Байт-код также кэшируется в файлах .pyc, так что выполнение одного и того же файла во второй раз происходит быстрее (можно избежать перекомпиляции из исходного кода в байт-код). Говорят, что этот «промежуточный язык» работает на виртуальной машине, которая выполняет машинный код, соответствующий каждому байт-коду.
Найдите декомпилятор, который работает с вашей версией Python, и декомпилируйте его обратно в файл Python. Я использовал кросс-версию Uncompyle6, и она отлично работала.
Однако, если вы не запустили свою программу или не нашли файл pyc, вам, к сожалению, придется копаться в памяти или на диске вашего компьютера и идти оттуда. Есть много программ, которые вы можете попробовать для этого.
И, конечно же, лучше всего использовать Git для контроля версий в первую очередь :)
Удачного кодирования!
Связаться:
Ссылка: