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

原文地址:https://www.cnblogs.com/jay54520/p/8421182.html

时间: 2024-08-02 18:21:48

py 与 pyc 文件的相关文章

Python编程时.py与.pyc文件的介绍

Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候.将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快下次执行文件的速度. 所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件. 其实并不是所有的.py文件在与运行的时候都会差生.pyc文件,只有在im

python之模块py_compile用法(将py文件转换为pyc文件)

# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件) #二进制文件,是由py文件经过编译后,生成的文件. ''' import py_compile #不带转义r py_compile.compile('D:\test.py') Traceback (most recent call last): File "<pyshell#1>", line 1, in &l

【Python】将python的py文件编译成保密的pyc文件

由于python程序的py文件很容易泄露源代码,所以python可以编译成保密的pyc文件. python的pyc文件是一种二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念. 编译py文件到pyc文件的方法: 在命令行输入:python -m py_compile myFile.py 就可以生成对应的pyc文件了. 希望对大家有所帮助. -------------------

python py生成为pyc文件

生成单个pyc文件 python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块. 使用方法非常简单,如下所示,直接在idle中,就可以把一个py文件编译为pyc文件了.(假设在windows环境下) import py_compile py_compile.compile(r'H:/game/test.py') compile函数原型: compile(file[, cfile[, dfile[, doraise]]]) file 表示

python py、pyc、pyo、pyd文件区别

py是源文件,pyc是源文件编译后的文件,pyo是源文件优化编译后的文件,pyd是其他语言写的python库 python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载 1.如果需要特殊的

代码编译与反编译 (.py文件与.pyc文件互转)

# 将.py文件转化为.pyc文件,实现代码隐藏的需要,转化后的.pyc文件将在当前目录的__pycache__文件夹下. # .pyc文件的使用与.py文件的使用相同. .py -> .pyc import compileall compileall.compile_dir(folder path) .pyc -> .py # 安装 uncompyle pip install uncompyle # 把 name.pyc 反编译成 name.py uncompyle6 name.pyc &g

pyc 文件反编译 py uncompyle2

一.工具 https://github.com/Mysterie/uncompyle2 -----------------------2016-6-3 11:24:19-- source:[1]用uncompyle2 反编译pyc文件

pyc文件反编译成py文件

pyc文件的反编译工具有uncompile2和decompile等,具体方法比较复杂,教程可以google 前几天发现一个小软件,Easy Python Decompiler v1.2,集成了这两个工具,一键反编译,大家可以去找找.

python面试题之请谈谈.pyc文件和.py文件的不同之处

虽然这两种文件均保存字节代码,但.pyc文件是Python文件的编译版本,它有平台无关的字节代码,因此我们可以在任何支持.pyc格式文件的平台上执行它.Python会自动生成它以优化性能(加载时间,而非运行速度) 本文首发于Python黑洞网,博客园同步更新 原文地址:https://www.cnblogs.com/pythonzhichan/p/11403461.html