本文出自“阿敏其人”简书博客,转载请注明出处。

文/阿敏其人

当我们的python文件被编译过,文件之间存在import关系,就会生成一个__pyc__文件夹。

比如我们新建一个工程,里面一共两个py文件。

分别是ttt.py和imp.py

ttt.py里面就只有一个方法。

imp.py import了ttt。编译过后,我们会看见多了一个__pyc__文件夹

.

imp.py

import ttt

ttt.sayHello()

image.png

内部

image.png

一、存在的意义

主要意义:加快启动速度

原因

Python 在解释源程序时分为两步:

第一步:将源码转为字节码

第二步:将字节码转换为机器码

image.png

pyc 文件是由 Python 解释器将 模块的源码 转换为 字节码。

(pyc,py代表pychon,c 是 compiled的含义,pyc即编译过的python文件 )

当我们的程序没有修改过,那么下次运行程序的时候,就可以跳过 从源码到字节码 的过程,直接加载 pyc 文件。

二、命令生成 pyc 文件

生成单个pyc文件

对于py文件,可以执行下面命令来生成pyc文件。

python -m test.py

另外一种方式是通过代码来生成pyc文件。

import py_compile

py_compile.compile('/path/test.py')

批量生成pyc文件

针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall,具体请看下面代码:

import compileall

compileall.compile_dir(r'/path')

这个函数的格式如下:

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])

三、注意点

1、import过的文件才会自动生成 pyc文件。

2、pyc文件不可以直接看到源码,可以被反编译

3、pyc的内容,是跟python的版本相关的,不同 版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的

END

python运行pyc文件_python中__pyc__文件的生成和作用相关推荐

  1. python各种文件_Python中对 文件 的各种骚操作

    Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...

  2. python如何创建文件_python中创建文件、读取文件内容

    1.选择文件夹,单击右键,点击New -> Python file 2.命名好之后,如我命的就是创建文件. 3.文件命名好了以后,可以编辑代码 如: nf=open("pi_digit ...

  3. python csv读写方法_python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方 ...

  4. python显示目录中的文件_Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  5. python打开dat文件_python中对文件的操作

    """ 在变量,序列(这里的序列其实就是元组,列表,字符串,集合,字典)和对象中存储的数据是暂时的,程序结束就会丢失. 为了能够长世界地保存程序中的数据,需要将程序中的数 ...

  6. python中怎么打开文件_Python中打开文件的方式(With open)

    1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标 示符: f = open( '/Users/michael/test.txt', 'r' ) 标示 ...

  7. python中简述文件_python中的文件操作

    文件的操作 文件操作时,python首先会拿到文件的句柄: f=open('filename','w',encoding='utf8') #写模式打开文件,拿到文件句柄:f为文件句柄 f=f.read ...

  8. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  9. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

最新文章

  1. App列表之圆角ListView源码
  2. Python_note2 基本图形绘制+turtle库使用
  3. Python 入门 Day4
  4. 细数移动IM开发中的那些坑
  5. 中国旅游日出游火爆 中国第一水乡游人突破5万
  6. 【MM模块】Invoice for POs with Acc Assignment 科目指派
  7. 深度思考 | 从BERT看大规模数据的无监督利用
  8. c#实现手机号码归属地查询
  9. Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助
  10. Oracle EBS SLA取值
  11. js清理cookie
  12. webRTC之智能指针std::unique_ptr::reset()使用(十四)
  13. Ubuntu安装Adobe Reader
  14. 隐藏在计算机软硬件,隐匿在计算机软硬件背后的语言
  15. Win10 笔记本 共享 wifi 热点
  16. FxCAD实验一 简单图形的绘制
  17. Vue.js 使用cordova camera插件调取相机
  18. linux c python,Python 不是 C
  19. Golang iota踩坑
  20. 半年总结——燕雀鸿鹄皆有志

热门文章

  1. 【Clickhouse】CLICKHOUSE SQL文件等常用语句
  2. postgresql如何让主键自增
  3. Spark的输出提交控制器OutputCommitCoordinator
  4. JVM参数这样配置会让你的程序更快更强
  5. 微服务SpringCloud中的负载均衡,你都会么?
  6. 23种设计模式(3)-原型模式
  7. MySQL--存储引擎篇
  8. Java迷宫代码,深度优先遍历
  9. 使用命令编译运行Java程序
  10. Pi 3B+编译安装python3.6.8