能否从Spyder控制台恢复已覆盖的.py文件代码?
解决方案
一、让Spyder控制台显示运行的原始代码
用
inspect模块提取内存中的代码:
脚本运行后会被加载到Python解释器内存里,在Spyder控制台输入以下代码就能导出原始代码:import inspect import 你的文件名 # 不要加.py后缀 # 获取并打印源代码 print(inspect.getsource(你的文件名))把输出的代码复制到新文件里,就能恢复原脚本。
查看Spyder控制台历史记录:
点击控制台顶部的时钟图标打开历史记录面板,翻找之前运行脚本的相关记录,运气好能找到完整的代码内容。
二、其他文件恢复方法
系统版本备份恢复:
- Windows:打开文件所在文件夹,右键空白处选「属性」,切换到「以前的版本」标签,查看是否有该文件的备份,有的话直接恢复即可。
- macOS:打开Time Machine,定位到文件所在位置和之前的时间点,恢复旧版本文件。
Spyder自动备份文件:
打开Spyder的「工具 > 首选项 > 编辑器 > 高级设置」,找到自动备份的存储路径,去该路径下找带.bak后缀的备份文件,重命名为.py就能使用。反编译
__pycache__中的.pyc文件:
运行过的脚本会在同目录生成__pycache__文件夹,里面的.pyc是编译后的文件,可通过反编译工具还原成代码:- 先安装反编译工具:
pip install uncompyle6 - 执行反编译命令(把
XX换成你的Python版本号,比如3.9):uncompyle6 __pycache__/你的文件名.cpython-XX.pyc > 恢复文件.py
- 先安装反编译工具:
内容的提问来源于stack exchange,提问作者Sagar Arora
相关产品推荐
相关产品推荐

