上传 Python .pyc 或 .pyo 字节码文件,尝试恢复为便于阅读和分析的近似 .py 源码。
工具用的顺手吗?
你的反馈能帮助我们做得更好
点击选择文件点击或拖拽上传 .pyc, .pyo 文件
单次支持多个文件,单个最大 256KB
最大 256 KB
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
Python 源文件会先编译为供解释器执行的字节码,常见缓存载体是 .pyc 文件。反编译的目标不是把二进制内容当作普通文本打开,而是识别其中的代码对象与字节码指令,再重建为便于阅读的 Python 源码表示。本工具接收直接的 .pyc 或 .pyo 文件,处理成功后可在页面中查看恢复结果,并把结果保存为 .py 文件。
| 环节 | 页面行为 |
|---|---|
| 选择文件 | 可一次加入多个文件;按文件名保留小写 .pyc、.pyo 后缀的项目,其他类型会被过滤。 |
| 大小检查 | 单个文件最大 256 KB;这是逐文件限制,不是多文件总体积上限。 |
| 执行顺序 | 点击开始后按列表逐个处理,可分别看到待处理、处理中、成功、失败或已跳过状态。 |
| 查看与导出 | 成功项目可打开只读源码视图,也可单独下载;原后缀会替换为 .py。 |
例如上传 module.cpython-311.pyc 后,成功下载的文件名为 module.cpython-311.py;文件名中的版本标签会保留,只有末尾扩展名发生变化。多文件模式是逐项处理和逐项下载,不会合并成一个源码文件或压缩包。
字节码是 Python 实现内部使用的指令形式,不是跨版本固定不变的交换格式。Python 官方文档明确指出,不同虚拟机或 Python 版本的字节码不一定兼容,CPython 的操作码也会随版本增删或改变。因此,文件由哪个 Python 实现与版本生成,是判断能否解析以及如何阅读结果的重要线索。
本页面没有手动选择 Python 版本的输入项,也没有展示一个可承诺的完整支持版本表。若原文件名仍含 cpython-311 之类的缓存标签,请在整理文件时保留它;标签可辅助人工核对来源,但实际结果仍以该文件的处理状态和输出内容为准。
.pyo 是旧版 Python 使用过的优化字节码扩展名。PEP 488 自 Python 3.5 起取消独立的 .pyo 命名,新版 CPython 把优化级别写入 .pyc 文件名,例如 name.cpython-35.opt-1.pyc。因此,遇到 .pyo 往往意味着文件来自较旧的构建或遗留部署;工具保留该扩展名入口,便于处理这类历史文件。
.pyc 缓存字节码以及字节码可能不跨虚拟机或版本兼容的结论;核验日期:2026-09-14。dis 文档:支持 CPython 操作码属于实现细节且会随版本改变的结论;核验日期:2026-09-14。.pyo 并改用带优化标签的 .pyc 命名;自 Python 3.5 实施,核验日期:2026-09-14。指南
按步骤完成操作,并通过示例核对输入与结果。
先从你有权处理的项目、备份或构建目录中找到 .pyc 或 .pyo。压缩包、可执行文件和共享库不是本页面的直接输入;不要只为通过筛选而把其他二进制文件改成这些后缀。
扩展名应为小写,每个文件不超过 256 KB。像 APP.PYC 这样的全大写后缀不会进入列表;若它确实是 PYC,可在不改变文件内容的前提下将后缀改为小写。
点击上传区域选择文件,或把文件拖入页面。先核对列表中的名称和大小;误选项目可单独移除,尚未开始处理时也可清空列表。
点击“开始反编译”后等待列表依次更新。处理期间不要重复操作文件列表。若页面提示使用次数已达上限,未执行的项目可能显示为已跳过或继续保持待处理,应以页面当时给出的账户提示为准。
打开成功项目的源码视图,先检查模块入口、函数签名、导入项、常量和控制流程。需要继续整理时再下载对应的 .py 文件;失败项目可移除后重新加入,以排除临时上传或文件选择问题。
场景
查看这项工具在不同工作与生活流程中的用法。
开发者只有旧环境中的字节码缓存、源码备份又不完整时,可先恢复可读结构,结合版本控制、部署配置和测试用例重新整理模块。
安全或合规人员在明确授权范围内检查遗留模块时,可用结果定位导入关系、敏感常量和主要分支,再回到制品清单与运行环境进行交叉验证。
教师、学生或维护者可把自己编译的示例文件作为输入,将恢复结果与原始 .py、对应版本的反汇编输出对照,理解编译前后结构如何变化。
须知
使用前了解适用范围、结果限制与必要提醒。
编译阶段未保留的信息无法从字节码中原样找回,注释、空白与排版通常会丢失,部分表达式或控制结构可能被重写;优化过的旧式 .pyo 还可能缺少编译时移除的内容。即使页面显示成功,也应把结果视为待审阅的近似源码,不能据此证明它与原程序逐字符或逐行为等价。
页面不提供手动版本选择,也不保证覆盖所有 Python 版本。版本较新或较旧、来自其他 Python 实现、文件头或主体损坏、经过混淆或采用非标准操作码的文件都可能失败,结果也可能包含不完整或需要人工改写的语句。单个文件 256 KB 的上限与小写扩展名筛选同样适用。
字节码文件会提交到远程服务处理。不要上传密钥、令牌、个人信息、未公开商业逻辑或受保密义务约束的制品;本页未给出文件保留期限时,不应自行假定上传内容会立即删除或永久保存。
仅分析你拥有、获明确许可或法律允许研究的代码,遵守许可证、合同、版权和所在地规则。恢复出的代码可能包含导入时副作用、网络访问或其他危险逻辑;不要直接运行,应先在隔离环境中静态审阅,并用你可控制的样例和测试验证关键行为。
推荐
查找相关工具、专题与可用的 API 能力。