浅谈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之list和str比较
Sep 20 Python
Python中的迭代器漫谈
Feb 03 Python
用Python制作检测Linux运行信息的工具的教程
Apr 01 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
Django中的FBV和CBV用法详解
Sep 15 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
Django 自动生成api接口文档教程
Nov 19 Python
Python如何使用函数做字典的值
Nov 30 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
python中random.randint和random.randrange的区别详解
Sep 20 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 mysql Errcode: 28 终极解决方法
2009/07/01 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
python计算时间差的方法
2015/05/20 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python安装OpenCV的示例代码
2020/03/05 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
行政助理的职责
2013/11/14 职场文书
生日邀请函范文
2014/01/13 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
职业女性的职业规划
2014/03/04 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP