浅谈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新手实现2048小游戏
Mar 31 Python
Python中用于返回绝对值的abs()方法
May 14 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
python轻松查到删除自己的微信好友
Jan 10 Python
Django自定义认证方式用法示例
Jun 23 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
python在回调函数中获取返回值的方法
Feb 22 Python
简单介绍python封装的基本知识
Aug 10 Python
python tkinter控件布局项目实例
Nov 04 Python
python实现学生通讯录管理系统
Feb 25 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 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实现Socket服务器的代码
2008/04/03 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python K近邻算法的kd树实现
2018/09/06 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
Python代码注释规范代码实例解析
2020/08/14 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
个人简历自我评价范文
2014/02/04 职场文书
活动总结模板
2014/05/09 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis