py 与 pyc 文件
本文要说明的问题
- pyc 文件是什么
- pyc 文件的作用
- py 与 pyc 文件冲突
pyc 文件是什么
当 py 文件加载后,py 文件被二进制编码成 pyc 文件。py 文件的修改时间被记录到 pyc 文件中。
这里的加载意味着要被其他模块导入,如果你只是运行 python filename.py,那么不会生成 pyc 文件。
pyc 文件的作用
pyc 文件是为了让加载 Python 模块更快,因为 pyc 相比 py 文件编译过程可以被跳过。
pyc 文件不能令执行更快。
py 与 pyc 文件冲突
py 文件的修改时间被记录到了 pyc 文件中,如果两者不匹配,Python 会忽略 pyc 文件,加载 py 文件然后编译出新的 pyc 文件。
这里的不匹配指的是 py 与 pyc 文件的修改时间不一致。
即使 pyc 文件记录的修改时间晚于 py 文件(pyc 文件更加新鲜),还是会进行上述流程。
以下是一个验证示例
$ date
Tue Feb 6 10:31:28 CST 2018
echo "print('Hello')" > hello.py
$ python
>>> import hello
Hello
>>> quit()
$ ls -l | grep hello
-rw-r--r-- 1 jsm staff 15 Feb 6 10:31 hello.py
-rw-r--r-- 1 jsm staff 110 Feb 6 10:32 hello.pyc
# 修改 hello.py 的修改时间
$ touch -mt 200801120000 hello.py
$ python
>>> import hello
Hello
>>> quit()
$ ls -l | grep hello
-rw-r--r-- 1 jsm staff 15 Jan 12 2008 hello.py
# 可以看出 hello.pyc 相比上面更新了
-rw-r--r-- 1 jsm staff 110 Feb 6 10:35 hello.pyc
py 与 pyc 文件的更多相关文章
- Python编程时.py与.pyc文件的介绍
Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候.将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快 ...
- .py与.pyc文件区别
原来Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候.将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了 ...
- python py生成为pyc文件
生成单个pyc文件 python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块. 使用方法非常简单,如下所示,直接在idle中,就可以把一个 ...
- python之模块py_compile用法(将py文件转换为pyc文件)
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...
- Python是解释性语言吗? 直到看到有 python py、pyc、pyo、pyd 文件
py是源文件,pyc是源文件编译后的文件,pyo是源文件优化编译后的文件,pyd是其他语言写的python库 1. Python是一门解释型语言? Python是一门解释性语言,我就这样一直相信下去, ...
- 代码编译与反编译 (.py文件与.pyc文件互转)
# 将.py文件转化为.pyc文件,实现代码隐藏的需要,转化后的.pyc文件将在当前目录的__pycache__文件夹下. # .pyc文件的使用与.py文件的使用相同. .py -> .pyc ...
- [Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)
Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...
- pyc 文件反编译 py uncompyle2
一.工具 https://github.com/Mysterie/uncompyle2 -----------------------2016-6-3 11:24:19-- source:[1]用un ...
- python面试题之请谈谈.pyc文件和.py文件的不同之处
虽然这两种文件均保存字节代码,但.pyc文件是Python文件的编译版本,它有平台无关的字节代码,因此我们可以在任何支持.pyc格式文件的平台上执行它.Python会自动生成它以优化性能(加载时间,而 ...
随机推荐
- Apache 配置:是否显示文件列表
Apache 配置:是否显示文件列表 进入虚拟主机配置文件 显示文件列表的话 options Indexes FollowSymLinks 不显示文件列表的话 options FollowSymLin ...
- Vue 组件开发demo
1.代码地址 github:https://github.com/MengFangui/VueComponentDemo- 2.关键代码 (1)main.js //引入vue import Vue f ...
- eclipse spring xml 无提示解决
增加自动提示的步骤: 1.window->preference.->xml-xml catalog 2.选中 user specified entried 3.选则Add..按钮 URI: ...
- 基于RocketIO的高速串行协议设计与实现
随着对信息流量需求的不断增长, 传统并行接口技术成为进一步提高数据传输速率的瓶颈.过去主要用于光纤通信的串行通信技术—SERDES正在取代传统并行总线而成为高速接口技术的主流.SERDES 是串行器) ...
- 摄像头驱动_摄像头驱动程序必需的11个ioctl及摄像头数据的获取过程
摄像头驱动_摄像头驱动程序必需的11个ioctl及摄像头数据的获取过程 根据虚拟驱动vivi的使用过程彻底分析摄像头驱动// 1~2都是在v4l2_open里调用1. open2. ioctl(4, ...
- ResultSet详解(转)
ResultSet用法集锦 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成 ...
- Android 第三方应用广告拦截实现
前段时间,公司制造的机器里应用装有不良广告,严重影响了儿童客户使用者的思想健康.导致被人投诉. 于是乎.就有了想研发一款相似于360广告屏蔽的应用的念头.嗯.事情就是这样.如今切入主题. 眼下市场上有 ...
- python学习之函数返回值
python中函数返回值的方式有2种: 1.return语句 说明:return语句执行完后,函数后续的代码将不会被执行 2.yield语句 说明:yield语句返回的是一个迭代器对象,可以通过nex ...
- linux. -bash: fork: retry: Resource temporarily unavailable错误
切换用户或登陆服务器后执行ls命令报错: -bash: fork: retry: Resource temporarily unavailable 上面这段错误提示的本质是Linux操作系统无法创建更 ...
- html 标签 链接
<a href="http://www.baidu.com">百度</a> <a href="#here">here< ...