浅谈Python的文件类型


Posted in Python onMay 30, 2016

Python的文件类型主要分为3种:源代码(source file)、字节码(byte-code file)、优化的字节码(optimized file)。这些代码都可以直接运行,不需要编译或者连接。这正是Python语言的特性,Python的文件通过python.exe和pythonw.exe解释运行。

1.源代码

Python的源文件以"py"为扩展名,有python.exe解释运行,可在控制台下运行。"pyw"是图形开发用户接口(GUI)文件的扩展名,作为桌面应用程序,这种文件用于开发图形界面的,由pythonw.exe解释运行。

"py"和"pyw"的文件都可以用文本编辑器打开并编辑。

2.字节代码

Python的源文件经过编译之后生成扩展名为"pyc",该文件不能用文本编辑器打开或编辑。"pyc"文件与平台无关,因此Python的程序可以运行在Windows、Unix和Linux等系统上。

通过运行一下脚本可以将"py"文件编译成"pyc"文件。

import py_compile2 py_compile.compile("hello.py")

运行之后可以得到"hello.pyc"文件,"pyc"文件存放于源文件路径中的__pycache__下。参见:https://www.python.org/dev/peps/pep-3147/

运行:

浅谈Python的文件类型

 

浅谈Python的文件类型

3.优化代码

经过优化的代码生成扩展名为"pyo"的文件,该类文件也不能用文本编辑器打开或者编辑。"pyo"类型的文件需要通过命令行工具生成。win+R启动命令行,进入到"py"文件所在目录,输入一下命令进行编译。

python -o -m py_compile hello.py

"-o" 表示生成优化代码

"-m" 表示把 py_compile模块作为脚本运行,编译代码需要调用 py_compile模块的complie()方法。

目前以"pyo"为扩展名的形式已经作废,均采用"pyc"为扩展名,在文件名称上进行区别。参见:https://www.python.org/dev/peps/pep-0488/

运行命令之后在源文件所在文件夹下__pycache__目录中生成xxx.cpython-xx.opt-x.pyc文件。

例如编译hello.py文件之后生成hello.cpython-35.opt-1.pyc文件。

浅谈Python的文件类型

以上这篇浅谈Python的文件类型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
Python实现list反转实例汇总
Nov 11 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
python中的二维列表实例详解
Jun 19 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
python suds访问webservice服务实现
Jun 26 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
python中string模块各属性以及函数的用法介绍
May 30 #Python
Python 常用string函数详解
May 30 #Python
整理Python 常用string函数(收藏)
May 30 #Python
深入浅析python继承问题
May 29 #Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 #Python
python自动翻译实现方法
May 28 #Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 #Python
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
php变量作用域的深入解析
2013/06/03 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
2017/02/19 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python机器学习之随机森林(七)
2018/03/26 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
Python如何实现的二分查找算法
2020/05/27 Python
几道Web/Ajax的面试题
2016/11/05 面试题
精彩自我鉴定
2014/01/16 职场文书
体操比赛口号
2014/06/10 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
孔庙导游词
2015/02/04 职场文书
李强优秀员工观后感
2015/06/16 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android