__pycache__

Posted xutopia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__pycache__相关的知识,希望对你有一定的参考价值。

最近在使用python写一个串口模块的时候,偶然发现运行脚本之后,在工程文件夹下面出现了这样一个文件夹__pycache__,所以就特意到网上查了一下这个文件夹是怎么回事。
技术图片

我们先在源文件中添加一些内容,如下:

在serialPortFile.py文件中添加下面两条语句
技术图片

运行此文件,控制台输出如下

技术图片

同样在main.py文件中添加下面两句话
技术图片
运行此文件,控制台输出如下

技术图片

从上面的结果中可以看到,当文件被执行时,其__name__的值就是”__main__“,当文件是被调用的时候,其__name__的值就是其文件名(不带.py)。
所以,当我们想让文件中的某一部分在文件被执行的时候才运行,而在文件被调用的时候不被执行,可以使用if __name__ == '__main__':这样的语句实现这样的功能。
接下来说说__pycache__文件夹的事情。下面是参考网上的一个回答
python解释器会将 *.py 脚本文件进行编译,并将编译结果保存到__pycache__目录中。下次再执行工程时,若解释器发现这个 *.py 脚本没有修改过,就会跳过编译这一步,直接运行以前生成的保存在 __pycache__文件夹里的 *.pyc 文件。这样工程较大时就可以大大缩短项目运行前的准备时间;如果你只需执行一个小工程,没关系 忽略这个文件夹就行。

如何使__pycache__文件夹不出现:
单次: 运行脚本时添加 -B 参数
python -B foo.py
永久: 设置环境变量 PYTHONDONTWRITEBYTECODE=1

更多内容关注公众号 洛水梅家
技术图片

以上是关于__pycache__的主要内容,如果未能解决你的问题,请参考以下文章

小知识点如何在 git 中取消 __pycache__ 文件

小知识点如何在 git 中取消 __pycache__ 文件

Python的__pycache__到底缓存什么?能缓存历史运行结果吗?—— 对PyCache的一点研究

__pycache__

Python3 项目删除 __pycache__ 文件夹和 .pyc 文件

从 pythonanywhere 添加/提交时,将 `__pycache__` 保留在我的存储库之外