浅谈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实现通过shelve修改对象实例
Sep 26 Python
Python实现的检测网站挂马程序
Nov 30 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
pandas如何处理缺失值
Jul 31 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Django model class Meta原理解析
Nov 14 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
python Zmail模块简介与使用示例
Dec 19 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数学运算与数据处理实例分析
2016/04/01 PHP
PHP中header用法小结
2016/05/23 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JavaScript修改css样式style
2008/04/15 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
python getopt 参数处理小示例
2009/06/09 Python
python随机取list中的元素方法
2018/04/08 Python
Python中dict和set的用法讲解
2019/03/28 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python logging模块handlers用法详解
2020/08/14 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
八一建军节演讲稿
2014/09/10 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers