基本说明

pyc 文件是 Python 编译过的字节码文件。当你运行一个 Python 程序时,Python 解释器首先将源代码(通常是 .py 文件)编译成字节码。这个字节码是一种低级的、与平台无关的代码,它可以被 Python 虚拟机(Python Virtual Machine,PVM)直接执行。将源代码编译成字节码的过程可以提高程序的运行速度。

Python 通常会在编译过程中生成一个 .pyc 文件,并将其存储在 __pycache__ 目录下。这个文件包含了源代码对应的字节码。当 Python 再次运行相同的程序时,它会检查是否存在对应的 .pyc 文件,如果存在并且比源文件更新,那么 Python 就直接运行字节码,而不是重新编译源代码,从而加快程序启动速度。

但是,如果源代码文件(.py 文件)被修改,或者 Python 解释器版本发生变化,那么 Python 就会重新编译源代码,生成一个新的 .pyc 文件来替换旧的字节码文件。

注意一下

在Python中,只有被import语句导入的模块(包括标准库和第三方库)和直接执行的Python脚本文件(使用Python解释器直接运行的.py文件)才会生成PYC文件。

当一个模块被导入时,Python会在sys.path路径下查找该模块的源代码文件,并编译成PYC文件,保存在与源代码文件相同的目录下。如果在导入模块时遇到了相同的PYC文件,则会直接加载这个PYC文件,避免重复编译源代码。

对于直接执行的Python脚本文件,如果它的文件名是"example.py",那么Python解释器会在当前工作目录下查找该文件,将其编译成PYC文件"example.pyc"并保存在同一目录下。如果在执行脚本文件时发生错误,则不会生成PYC文件。

假设我们有一个Python脚本文件名为"example.py",包含如下代码:

def add_numbers(a, b):return a + bresult = add_numbers(1, 2)
print(result)

我们可以在命令行中直接运行这个脚本文件,命令为:

python example.py

这将会执行该脚本文件中的代码,并生成PYC文件"example.pyc",保存在同一目录下。下次再次运行这个脚本文件时,Python解释器会检查是否存在缓存的PYC文件,如果存在,则直接加载缓存的PYC文件并执行其中的字节码,这样就可以提高代码的执行速度。

需要注意的是,如果我们修改了"example.py"文件中的代码,并再次运行它,Python会重新编译代码并生成新的PYC文件,以确保缓存的字节码与最新的源代码一致。

除了使用Python解释器直接运行.py文件生成PYC文件外,还有其他方式可以运行Python代码,但是它们不会生成PYC文件。

一种方式是使用Python的交互式环境(也称为REPL环境),例如在命令行中输入"python"命令可以进入Python交互式环境,然后可以直接在命令行中输入Python代码并执行,但是不会生成PYC文件。

另一种方式是通过Python解释器的-e选项,可以在命令行中直接执行一行Python代码,例如:

python -e "print('Hello, world!')"

这种方式也不会生成PYC文件。

需要注意的是,即使不生成PYC文件,Python仍然会在内存中编译和执行代码,只是没有将字节码保存到硬盘上,所以每次运行代码都需要重新编译。

python中的pyc文件了解一下?相关推荐

  1. Python 中的Pyc文件

    Python 中的Pyc文件 分类: Python 2011-04-22 16:52 4055人阅读 评论(0) 收藏 举报 pythonimport虚拟机跨平台googlebyte 首先我申明,我不 ...

  2. Python 中的pyc文件的用途

    什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的 ...

  3. python运行pyc文件_Python中你不知道的pyc文件

    ## Python细说pyc ### 1. Python是一门解释型语言? 相信听说过或在学python的同学都听说过"Python是一门解释性语言",如果细心的同学,应该会留意到 ...

  4. python中 .py .pyc .pyw .pyo .pyd文件

    转:https://blog.csdn.net/willhuo/article/details/49886663 DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和 ...

  5. python 批量编译pyc文件

    pyc文件是py文件编译后生成的字节码文件(byte code),pyc文件经过python解释器最终会生成机器码运行.因此:pyc文件是可以跨平台部署的,类似Java的.class文件,一般py文件 ...

  6. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  7. 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库

    作者 | megha152 编译 | Flin 来源 | analyticsvidhya 介绍 PDF 代表便携式文档格式.它使用 .pdf 扩展名.这种类型的文件主要用于共享目的.它们不能被修改,从 ...

  8. python中os操作文件及文件路径

    python中os操作文件及文件路径实例汇总     1 . python获取文件上一级目录:取文件所在目录的上一级目录 os.path.abspath(os.path.join(os.path.di ...

  9. python 中移去文件的只读属性

    PYTHON中移去文件的只读属性 孙文涛 2008, Dec. 25th 如何在PYTHON中移去文件的只读属性, 用chmod命令stat.S_IWRITE import os import sta ...

最新文章

  1. php jwt token过期时间,php – 动态设置laravel jwt的到期时间
  2. 玩转python字体
  3. IOS Masonry自动布局
  4. idea提示,格式化代码,清除不使用的包快捷键,maven自动导jar包
  5. python字符串前加r、f、u、l 的区别
  6. 容器源码分析之TreeSet(五)
  7. intel i218v千兆网卡 linux驱动,适用于英特尔® 千兆位以太网网络连接的 Linux* 基础驱动程序...
  8. Java并发编程(多线程)中的相关概念
  9. html 获取鼠标在canvas上的坐标,html5-canvas 检测鼠标在画布上的位置
  10. nvidia显示设置不可用_Nvidia显示设置不可用,您当前未使用连接到NVIDIA GPU的显示器的解决方法...
  11. 腾讯网易禁止未成年人本周六玩游戏
  12. input文字垂直居中_CSS的带文字居中分析
  13. android 类似按键精灵脚本_android软件。按键精灵或者脚本精灵都可以,录制脚本可以设置播放次数的最好了。...
  14. Dz插件-Discuz插件-免费Discuz采集伪原创发布插件
  15. 《21天学通C语言(第7版)》一2.5 答 疑
  16. (开源)微信小程序实时控制stc89c51,通过esp8266
  17. 5款超好用的在线IDE,媲美vscode,可以直接编写前端构建化项目,而无需在本地下载依赖包,非常适合学习、demo、原型开发
  18. Go关键字--chan
  19. 事业单位新税改的个人所得税纳税筹划
  20. Ubuntu14.10 更新源

热门文章

  1. SS54/SS24/SS510及SMA/SMB/SMC不同封装区别
  2. 厦大生物科学类要考计算机等级吗,厦门大学生命科学学院调剂经验分享
  3. 洛阳计算机学校排名2015,洛阳初中名校排行榜TOP10,这一次你说了算!
  4. 计算方法(二):n次多项式插值
  5. ESP8266EX 串口WIFI无线模块
  6. ASCII 表(0~255)
  7. Linux磁盘分区命名方式及常用磁盘管理命令
  8. latchtimeborrowingLookup latch
  9. UE4 材质CustomNode引入自定义.usf/.ush文件
  10. 算法-数据结构-演示网站(USF)