浅谈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 相关文章推荐
在Django中创建动态视图的教程
Jul 15 Python
浅析Python 中整型对象存储的位置
May 16 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
python开发简易版在线音乐播放器
Mar 03 Python
Python实现发送QQ邮件的封装
Jul 14 Python
深入理解Python分布式爬虫原理
Nov 23 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
Python语言异常处理测试过程解析
Jan 08 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
tensorflow+k-means聚类简单实现猫狗图像分类的方法
Apr 28 Python
Python如何解决secure_filename对中文不支持问题
Jul 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 模拟get_headers函数的代码示例
2013/04/27 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
JavaScript 原型继承
2011/12/26 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
js运动事件函数详解
2016/10/21 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python批处理更改文件名os.rename的方法
2018/10/26 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Oracle中DBLink的详细介绍
2022/04/29 Oracle