pyc

什么是pyc文件

pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由Python的虚拟机来执行的,这个是类似于Java或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。

要编译为 *.pyc 文件,需要引入 Python 中的模块 py_compile,在交互模式下输入:

 import py_compile
py_compile.compile("test.py")

 

将py文件编译成pyc文件

  • 命令行:

python -m py_compile file.py # 单文件

python -m py_compile /root/src/{file1,file2}.py  # 多文件
  • 运行 uncompyle6 -o xx.py xx.pyc xx为你的文件名。就会在你.pyc对应文件夹下产生py原文件。

uncompyle6 -o DataManage.py .\DataManage.pyc

 

### 反编译 pyc

首先安装库 uncompyle:   pip install uncompyle

命令行下:uncompyle6 test.pyc > test1.py 

基本格式

pyc文件一般由3个部分组成:

  • 最开始4个字节是一个Maigc int, 标识此pyc的版本信息, 不同的版本的 Magic 都在 Python/import.c 内定义

  • 接下来四个字节还是个int,是pyc产生的时间(TIMESTAMP, 1970.01.01到产生pyc时候的秒数)

  • 接下来是个序列化了的 PyCodeObject(此结构在 Include/code.h 内定义),序列化方法在 Python/marshal.c 内定义

posted @   kayoki  阅读(430)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示