浅谈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 相关文章推荐
python关闭windows进程的方法
Apr 18 Python
python 队列详解及实例代码
Oct 18 Python
浅谈python中的占位符
Nov 09 Python
python 字符串和整数的转换方法
Jun 25 Python
Python3匿名函数用法示例
Jul 25 Python
python的concat等多种用法详解
Nov 28 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Python class的继承方法代码实例
Feb 14 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 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
PHP生成二维码的两个方法和实例
2014/07/01 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP缓冲区用法总结
2016/02/14 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
javascript实现数独解法
2015/03/14 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
python 实现简单的FTP程序
2019/12/27 Python
python数据分析:关键字提取方式
2020/02/24 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
优秀教师先进事迹
2014/01/22 职场文书
赔偿协议书
2015/01/27 职场文书
个人党性锻炼总结
2015/03/05 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL