py,pyc,pyw文件的区别和使用
熟悉python编程的都知道,python三种最常见的py文件格式,.py,.pyc,.pyw,下面说一说它们各自的使用。
py文件
python最常见的文件,是python项目的源码;
文件执行时linux下调用python执行,windows下调用python.exe;
如果在终端窗口或IDE执行命令,其相关的print(),或执行结果打印在当前的窗口上;
注意:
- 在如pycharm中,当存在需要from *** import **这种需要导入时,无论在当前的目录下是否存在_init_.py文件,都可以直接导入同一目录下的文件。
# 例当前的文件目录test文件夹下
__init__.py
test.py
main.py
took.py
# 在window下书写main.py时可以
from test.took import *
# 也可以
from took import * # 但是IDE可能会提示报错,这个时候不用管它
# 在linux下,from test.took import * 执行会报错
- 所以应该写成from took import *才最保险
pyc文件
Python提供了一种中间编译结果保存机制,即字节文件.pyc 文件。在执行一个 .py 文件的源代码之后,Python 并不会自动生成与该 .py 文件对应的 .pyc 文件,而是利用 Python的import机制。
python是解释型语言,按代码从上到下的顺序边解释边执行,如果运行中碰到import XXX这样的语句,python会按照响应的路径去寻找xxx.pyc文件,如果没有找到,但存在xxx.py文件,Python会首先将abc.py编译成相应的PyCodeObject中间结果,然后再创建 xxx.pyc 文件,并将中间结果写入该文件。接下来,Python才会对xxx.pyc文件进行一个 import 动作,也就是将 abc.pyc文件中的PyCodeObject复制一份加载到内存中;
由于.pyc文件的此种运行机制,可随时删除所有中间过程 .pyc 文件,当 Python 再次运行时,会重生成这些 .pyc 文件。
pyc文件是不能使用编辑器进行编辑的,它的执行速度远远快于py文件,此外执行pyc文件也可以简单地防止源代码泄漏;
运行pyc文件的方式和运行py文件的方式是一样的
python xxx.pyc
pyw文件
windows环境
pyw文件运行的时候不会出现向pyc文件一样有闪烁的窗口,同时不会打开控制台窗口,相关的print()等输出会失效,程序在后台运行;
可以使用双击的办法直接运行pyw文件,系统会调用pythonw.exe来运行;
如果需要将相关的信息输出,可以:
pythonw \path\xxx.pyw 1>\path\stdout.txt 2>\path\stderr.txt
# 1代表标准输出,将标准输出重定向到stdout.txt中
# 2代表错误输出,将错误输出重定向到stderr.txt中
linux环境
- 在linux环境中,所有的文件是不区别扩展名的,而是根据内容使用响应的程序运行,因此pyw后缀和pyc后缀没有区别。
py,pyc,pyw文件的区别和使用的更多相关文章
- python .py .pyc .pyw .pyo .pyd区别
.py 文件 以 .py 作扩展名的文件是 Python 源代码文件,由 python.exe 解释,可在控制台下运行.当然,也可用文本编辑器进行修改. .pyc 文件 以 .pyc 作扩展名的文件是 ...
- Python各种扩展名(py, pyc, pyw, pyo, pyd)区别
扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py py就是最基本的源码扩展名 pyw pyw是另一种源码扩展名,跟py唯一的区别是 ...
- python中.py和.pyw文件的区别
:本文为博主原创文章,未经博主允许不得转载. 以下是摘录自百度问题的答案: 严格来说,它们之间的不同就只有一个:视窗运行它们的时候调用不同的执行档案. 视窗用 python.exe 运行 .py ,用 ...
- Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别
Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库.Python源代码遵循 GPL (GNU General Public License) 协议 ...
- python py pyc pyw pyo pyd之间区别
来源: http://blog.csdn.net/chroming/article/details/52083387 1.py 脚本文件,是最基本的源码扩展名.windows下直接双击运行会调用pyt ...
- py, pyc, pyw, pyo, pyd 及发布程序时的选择 Compiled Python File (.pyc)
Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择 - 司开星的专栏 - CSDN博客 https://blog.csdn.net/chroming/artic ...
- py, pyc, pyw, pyo, pyd Compiled Python File (.pyc) 和Java或.NET相比,Python的Virtual Machine距离真实机器的距离更远
https://my.oschina.net/renwofei423/blog/17404 1. PyCodeObject与Pyc文件 通常认为,Python是一种解释性的语言,但是这种说法 ...
- [Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)
Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...
- C语言中 *.c和*.h文件的区别!
C语言中 *.c和*.h文件的区别! http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/ ...
随机推荐
- 第210天:node、nvm、npm和gulp的安装和使用详解
一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...
- HDU1863畅通工程---并查集+最小生成树
#include<cstdio> #include<algorithm> #define MAX 105 struct edge { int from,to; long lon ...
- oracle的lpad()函数
lpad函数 lpad函数是Oracle数据库函数,lpad函数从左边对字符串使用指定的字符进行填充.从其字面意思也可以理解,l是left的简写,pad是填充的意思,所以lpad就是从左边填充的意思. ...
- Mysql千万级大表优化策略
1.优化sql以及索引 1.1优化sql 1.有索引但未被用到的情况(不建议) (1)避免like的参数以通配符开头时 尽量避免Like的参数以通配符开头,否则数据库引擎会放弃使用索引而进行全表扫描. ...
- CSK & KCF(tracking)
转自:http://blog.csdn.net/ben_ben_niao/article/details/51364323 上次介绍了SRDCF算法,发展历史轨迹为CSK=>>KCF/DC ...
- jeecms上传文件限制导致413-Request Entity Too Large
1:spring mvc 上传限制大小 配置是否允许在上传文件的大小 <bean id="multipartResolver" class="org.spring ...
- Oracle恢复误删除表操作语句
一.表和数据恢复 1.从回收站里查询被删除的表 select object_name,original_name,partition_name,type,ts_name,createtime,drop ...
- CF540 D 概率 DP
石头剪刀布三种生物(?) 随机战斗,最后三方各自只有自己方存活下来的概率是多少. 局面的转移明显,注意任选两方决定战斗时有可能出现选了同个种类的,因此注意排除掉同种的组合,也就是条件概率什么的. /* ...
- 在GitHub搭建个人博客 地址: https://douzujun.github.io/
搭建博客地址:https://douzujun.github.io/ 博客模板:https://github.com/douzujun/douzujun.github.io 显示效果:
- 谈谈"求线段交点"的几种算法(js实现,完整版)
"求线段交点"是一种非常基础的几何计算, 在很多游戏中都会被使用到. 下面我就现学现卖的把最近才学会的一些"求线段交点"的算法总结一下, 希望对大家有所帮助. ...