浅谈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探索之修改Python搜索路径
Oct 25 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python实现小球弹跳效果
May 10 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python 两个数据库postgresql对比
Oct 21 Python
python脚本后台执行方式
Dec 21 Python
Python数据存储之 h5py详解
Dec 26 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 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
一个取得文件扩展名的函数
2006/10/09 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
React组件的三种写法总结
2017/01/12 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python IP地址转整数
2020/11/20 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
新学期标语
2014/06/30 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
公司合作意向书范文
2014/07/30 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
年底个人总结范文
2015/03/10 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
SQL注入详解及防范方法
2021/12/06 MySQL