熟悉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文件的区别和使用的更多相关文章

  1. python .py .pyc .pyw .pyo .pyd区别

    .py 文件 以 .py 作扩展名的文件是 Python 源代码文件,由 python.exe 解释,可在控制台下运行.当然,也可用文本编辑器进行修改. .pyc 文件 以 .pyc 作扩展名的文件是 ...

  2. Python各种扩展名(py, pyc, pyw, pyo, pyd)区别

    扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py py就是最基本的源码扩展名 pyw pyw是另一种源码扩展名,跟py唯一的区别是 ...

  3. python中.py和.pyw文件的区别

    :本文为博主原创文章,未经博主允许不得转载. 以下是摘录自百度问题的答案: 严格来说,它们之间的不同就只有一个:视窗运行它们的时候调用不同的执行档案. 视窗用 python.exe 运行 .py ,用 ...

  4. Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别

    Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库.Python源代码遵循 GPL (GNU General Public License) 协议 ...

  5. python py pyc pyw pyo pyd之间区别

    来源: http://blog.csdn.net/chroming/article/details/52083387 1.py 脚本文件,是最基本的源码扩展名.windows下直接双击运行会调用pyt ...

  6. py, pyc, pyw, pyo, pyd 及发布程序时的选择 Compiled Python File (.pyc)

    Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择 - 司开星的专栏 - CSDN博客 https://blog.csdn.net/chroming/artic ...

  7. 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是一种解释性的语言,但是这种说法 ...

  8. [Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)

    Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...

  9. C语言中 *.c和*.h文件的区别!

    C语言中 *.c和*.h文件的区别!  http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/        ...

随机推荐

  1. 【操作系统、UNIX环境编程】进程间通信

    多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程使用,我们把一次仅允许一个进程使用的资源称为临界资源,许多物理设备都属于临界资源,如打印机等. Linux下进程间通信有如下几种方式: ...

  2. 【bzoj4305】数列的GCD 组合数学+容斥原理

    题目描述 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N).  现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], b[2], ..., ...

  3. DRM Study

    1.DRM是什么? DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理.指的是出版者用来控制被保护对象的使用权的一些技术,这些技术保护的有数字化内容(例如: ...

  4. jmeter同步定时器

    同步定时器是jmeter中一个比较重要的定时器,同步定时器,相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起并发,可以用来做大数据量的并发请求. 验证 ...

  5. C++解析(1):C到C++的升级

    0.目录 1.C与C++的关系 2.C到C++的升级 2.1 语言的实用性 2.2 register关键字 2.3 同名的全局变量 2.4 struct关键字 2.5 int f() 与 int f( ...

  6. 【BZOJ1068】压缩(动态规划)

    [BZOJ1068]压缩(动态规划) 题面 BZOJ 洛谷 题解 比较简单的\(dp\) 设\(f[i][j]\)表示当前已经匹配到了原串的第\(i\)个位置,上一个\(M\)在第\(j\)个字符之后 ...

  7. 在华为eNSP中配置简单的DHCP

    拓扑图,如图1 图1 在AR1中的配置过程如图2 图2 通过PC1查看是否分配了地址,如图3 图3

  8. Linux内核分析第二周学习博客——完成一个简单的时间片轮转多道程序内核代码

    Linux内核分析第二周学习博客 本周,通过实现一个简单的操作系统内核,我大致了解了操作系统运行的过程. 实验主要步骤如下: 代码分析: void my_process(void) { int i = ...

  9. C内存对齐问题-bus error!总线错误!其实是 字符串字面量修改问题!

    最近写个小程序,出现bus error! int main(void) { /** * char :1个字节 * char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也 ...

  10. HDU--2962

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962 分析:最短路+二分. #include<iostream> #include< ...