当前位置:   article > 正文

Python之pyc文件的生成与反编译

pyc文件

目录

1、什么是pyc文件

2、手动生成pyc文件

3、pyc文件的执行

4、pyc文件的反编译


1、什么是pyc文件

pyc文件(PyCodeObject)是Python编译后的结果。当python程序运行时,编译的结果是保存于PyCodeObject,程序运行结束后,Python就将PyCodeObject写入到pyc文件中,这是个字节码文件。

2、手动生成pyc文件

首先我们新建一个py文件,如下图:

正常运行test.py没有任何变化

那么我们在终端使用python命令追加参数 -m 进行运行呢?

python -m test.py

可以看到生成了一个 __pycache__ 文件夹,进入该文件夹即可看到一个pyc文件

内容如下:

看起来就是一堆乱码,这种主要是不想让别人看到源码的情况

  1. �i\e � � � e d � � dS )z
  2. Hello Python!N)�print� � �D:\test\test\test.py�<module>r s �� ��o� � � � � r

此外,我们还可以使用 py_compile 模块将py文件转换为pyc文件

具体用法:

这个是在交互模式下进行的而不是终端,先导入模块,然后调用该模块下的compile方法

  1. >>> import py_compile
  2. >>> py_compile.compile("文件名.py")

同样生成了一个 __pycache__ 文件夹 ,对应pyc文件即在里面

3、pyc文件的执行

那么pyc文件可以执行吗?

当然是可以的,也是在终端使用python命令执行:

python test.cpython-311.pyc

(注意需要切换到pyc文件所在的路径,即__pycache__ 文件夹下) 

4、pyc文件的反编译

关于反编译我们就需要装一个库了--uncompyle

在终端使用命令进行安装:

pip install uncompyle

反编译命令:

注意: > 前后都有空格,前面为需要进行反编译的pyc文件名,后者为反编译结果的文件名

uncompyle6 test.cpython-311.pyc > test.py 

uncompyle是Python的一个反编译工具,用于将pyc文件反编译为py源码

当然,如果你的Python版本不满足库文件内的要求,大概率是会遇到报错的

最常见报错:KeyError: '你的Python版本号'

如下图:

关于这个问题的解决办法,我放在下一篇博客(Python专栏),问题已彻底解决,欢迎参考!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/601323
推荐阅读
相关标签
  

闽ICP备14008679号