Python中的pyc文件是作什么用的?(61)

Python中的pyc文件是作什么用的?(61)

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

和猫妹学Python,一起趣味学编程。

py文件和pyc文件

我们都知道py后缀是Python源码文件,偶尔还会看到pyc后缀文件。

pyc后缀文件是做什么用的呢?

咱们今天学习下,pyc文件的基础知识。

pyc是官方开发的解释器编译过生成的文件,它是二进制文件。

pyc就是python compiled的缩写,它会保存在一个名叫__pycache__文件夹下。

文件命名有规律,比如module.cpython-38.pyc。

这里的cpython-38,表示c编写的Python解释器,Python解释器版本是38。

pyc文件的作用是加速程序的执行,import模块时,解释器会先编译该模块,生成pyc文件。

对模块源文件进行了修改,pyc文件会更新。

模块的源码(py)转换为字节码文件(pyc)。

Python在解释源程序时会分成两个步骤:

处理源代码,编译生成一个二进制字节码文件

对字节码进行处理,才会生成CPU能够识别的机器码。

有了模块的字节码文件后,下次程序运行时,如果在上次保存字节码之没有修改过源码,Python将会加载pyc文件并跳过编译这个步骤。

举个例子

pyc文件的生成

在磁盘上建立一个文件夹pyc,在该文件夹下创建两个Python文件,一个模块module.py,一个是test.py。

运行test.py会生成文件夹__pycache__,内部有文件module.cpython-38.pyc。

py源码文件如果没有加入代码混淆的话,那么生成的pyc文件,是可以反编译出源码的。

我们随便选一个在线的工具,类似工具有很多,也可以本地编码实现。

如图:

pyc文件的用途

既然pyc是py文件编译生成的,那么pyc文件是否可以替代Python呢?

这样不就可以隐藏源码了吗?

可以的,把test.py放入__pycache__,pyc文件改名为module.pyc。

非模块文件也可以生成pyc文件

我们删除其他文件,新建hello.py。

正常运行python文件,不加参数:python hello.py。

如果想生成pyc文件呢?

需要加个参数:python -m py_compile hello.py

生成的hello.cpython-38.pyc可以用Python运行

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!


比丘资源网 » Python中的pyc文件是作什么用的?(61)

发表回复

提供最优质的资源集合

立即查看 了解详情