如何将显示为二进制的text/x-python文件转换为纯文本格式?
解决方法:你的文件是Python字节码(.pyc),需要反编译成源码
看起来你手里的这个文件根本不是纯文本的Python源码,而是编译后的Python字节码文件(也就是常见的.pyc文件)!
为什么会显示成二进制?
你用xxd看到的起始字节03f3 0d0a是Python 3.7及更高版本的.pyc文件的魔数(标识字节),这类文件本身就是二进制格式,所以Vim会把它识别成二进制文件,而非文本。至于MIME类型显示为text/x-python,应该是系统的识别错误——毕竟pyc本质是二进制文件,不属于文本类的Python源码范畴。
怎么转换成文本格式的Python源码?
你需要用专门的pyc反编译工具,这里推荐uncompyle6,操作步骤如下:
- 先安装工具:
pip install uncompyle6 - 然后对目标文件执行反编译命令,把结果输出到一个新的文本文件中:
举个实际例子,如果你的文件叫uncompyle6 你的文件名 > 输出的源码文件名.pyunknown_file,就运行:uncompyle6 unknown_file > recovered_source.py
额外注意事项
- 不需要给目标文件手动添加
.pyc后缀,工具会自动识别字节码格式 - 如果字节码经过混淆或加密处理,反编译可能会失败,但普通的pyc文件都能顺利还原成可读的源码
- 还原后的源码可能会和原始源码有细微差异(比如注释丢失、代码格式变化),但核心逻辑是完全一致的
内容的提问来源于stack exchange,提问作者mining
相关产品推荐
相关产品推荐

