zoukankan      html  css  js  c++  java
  • 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 pathxxx.pyw 1>pathstdout.txt 2>pathstderr.txt
    
    # 1代表标准输出,将标准输出重定向到stdout.txt中
    # 2代表错误输出,将错误输出重定向到stderr.txt中
    

    linux环境

    • 在linux环境中,所有的文件是不区别扩展名的,而是根据内容使用响应的程序运行,因此pyw后缀和pyc后缀没有区别。
  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/cwp-bg/p/8508847.html
Copyright © 2011-2022 走看看