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 @ 2023-02-12 20:11  kayoki  阅读(512)  评论(0)    收藏  举报