如何从运行中的Python Shell恢复误删的solve.py模块源码或PYC文件?
从运行中的Python Shell恢复丢失的
solve.py源码 哇,这情况真的太闹心了——GitHub Desktop的Bug搞丢仓库,还碰上个PyCharm本地历史用不了的窘境,换谁都得慌。不过万幸的是,你导入的solve模块还在Python Shell里运行着,这可是咱们找回代码的关键机会!
核心方法:从内存中的模块对象提取源码
只要那个Python Shell进程还在运行(别按Ctrl+C,别让函数结束!),你完全可以直接从已加载的模块里导出源码:
在运行的Python Shell里执行以下命令:
# 如果之前用from solve import *导入,模块对象已存在;若提示找不到,先执行import solve import inspect import solve # 获取模块的完整源码 source_code = inspect.getsource(solve) # 直接将源码写入新文件保存 with open("recovered_solve.py", "w") as f: f.write(source_code)执行完你就能在当前目录得到一个
recovered_solve.py文件,里面就是你丢失的代码。这个方法依赖Python对已加载模块的内存存储,只要进程没终止就100%管用。备选:查找残留的PYC文件
你可以先看看模块加载时的原始路径,说不定对应的PYC文件还在某个角落:print(solve.__file__)这个命令会输出模块被导入时的文件路径(比如
/path/to/your/solve.py),你可以把后缀改成.pyc,或者去对应的__pycache__目录找找(比如/path/to/your/__pycache__/solve.cpython-3x.pyc)。如果找到PYC文件,用反编译工具还原:# 先安装反编译工具 pip install uncompyle6 # 将PYC文件转成可读源码 uncompyle6 /path/to/your/solve.pyc > solve.py
重要提醒:别先终止进程!
一旦你按下Ctrl+C终止函数,或者函数自行结束导致Python Shell进程退出,内存里的模块对象就会被销毁,上面的方法就失效了。一定要先把源码提取出来,再处理进程的问题。
适合的交流平台推荐
- Stack Overflow:本身就是你现在提问的平台,针对这类具体的技术故障,贴清场景细节(比如Python版本、GitHub Desktop版本),很快能得到精准解答。
- Reddit的r/python或r/git板块:社区氛围活跃,很多开发者愿意帮忙排查这类突发的文件丢失问题。
- Python官方Discord服务器:实时交流的好去处,能快速得到即时的建议和排查思路。
内容的提问来源于stack exchange,提问作者Conor James Thomas Warford Hen
相关产品推荐
相关产品推荐

