浅谈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 set集合类型操作总结
Nov 07 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
Python使用googletrans报错的解决方法
Sep 25 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
一行代码python实现文件共享服务器
Apr 22 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 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生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
Smarty模板语法详解
2019/07/20 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
js对象的复制继承实例
2015/01/10 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
老生常谈angularjs中的$state.go
2017/04/24 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现简单文本字符串处理的方法
2018/01/22 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
2014年前台文员工作总结
2014/12/08 职场文书
公司管理制度范本
2015/08/03 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle