Python居然有这么多文件扩展
- B站:啥都会一点的研究生
- 公众号:啥都会一点的研究生
大部分Python开发者打过最多的交道就是.py
文件,但你不知道的是还有很多其他文件扩展,本期整理了9个不同py扩展文件具体含义与用法,花几分钟一起看看吧
.py 文件:标准Python源代码
每位了解Python的开发者都会将代码写入 .py
文件,然后通常这样执行
python your_py_file.py
简单来说,.py
文件是可执行的纯文本文件,包含Python代码
.ipynb 文件:交互式Jupyter Notebook
以 .ipynb
扩展名保存的Jupyter的Python文件提供了一个交互式环境,可以在单个文档中结合代码执行、数据可视化和叙述性文本
.pyi 文件:Python类型提示与接口文件
Python接口文件(带有 .pyi
扩展名的文件),或称为Python存根文件,在通过类型提示增强Python代码方面有着关键作用
例如,有一个名为 test.py
的Python文件,包含以下程序:
def multiply(a, b):return a * bprint(multiply(2.2, 10))
IDE或其他Python类型检查工具不会对上述程序提出任何问题,因为我们没有给它们任何类型提示
让我们创建一个与 .py
文件同名的 .pyi
文件
将以下代码写入 test.pyi
文件
def multiply(a: int, b: int) -> int: ...
如果再次打开 test.py
文件,IDE会提醒现在类型不匹配
这使得程序类型更安全,但大家可能会问为什么不直接在原始Python文件(.py
文件)中添加类型提示?
对于我们的示例,毫无疑问.pyi
文件并不是真正必要,可以直接在原始函数定义中声明 int
类型
但了解 .pyi
的概念仍然有意义
因为将类型注释与实现分离可以使主代码保持清洁并专注于功能
更重要的是,为了向后兼容性,存根文件允许在不修改原始源文件的情况下向旧版代码添加类型提示。毕竟,修改其他人编写的旧代码是个脑阔疼的问题
.pyc 文件:编译的Python字节码
当Python脚本作为模块导入时,解释器将它们编译为字节码,并将其保存为 .pyc
文件,以通过跳过不必要的重新编译来提高模块加载时间
这种类型的文件由解释器自动生成,包含字节码,这是源代码(相对的 .py
文件)的更低级别、平台无关的表示
字节码是Python虚拟机解释和执行的内容
鉴于它以二进制格式保存且不可读,在大多数情况下不需要太担心 .pyc
文件
.pyw 文件:Windows GUI Python脚本
Python也是一种用于图形用户界面(GUI)开发的编程语言
.pyw
文件是为Windows GUI设计的特定类型的Python脚本文件,这些文件用于在不打开命令提示符窗口的情况下运行,使它们成为GUI应用程序的理想选择
创建 .pyw
文件很直接——只需将脚本保存为 .pyw
扩展名而不是 .py
。.pyw
文件可以像 .py
文件一样直接运行
例如,可以通过tkinter编写一个简单的UI组件并将其保存为 .pyw
文件
import tkinter as tkdef greet():label.config(text=f"Hello, {entry.get()}!")root = tk.Tk()
root.title("Greeting App")label = tk.Label(root, text="Enter your name:")
label.pack()entry = tk.Entry(root)
entry.pack()button = tk.Button(root, text="Greet", command=greet)
button.pack()root.mainloop()
要执行它,可以在Windows资源管理器中双击文件,或者使用 pythonw
从命令行运行它
pythonw example.pyw
.pxd 和 .pyx 文件:Cython源代码和声明文件
Cython是一种编程语言,使编写Python的C扩展变得和Python本身一样容易。它是Python的超集,旨在将大部分用Python编写的代码提供类似C的性能
Cython使用的两种重要文件类型是 .pyx
和 .pxd
文件
.pyx
:包含主要实现代码的Cython源文件。.pyx
文件中的代码可以是Python和类似C的语法混合,允许编写与Python无缝集成的高性能代码.pxd
:这些是Cython声明文件,类似于C头文件。包含类型定义、跨多个.pyx
文件共享的函数、变量和类的声明
.pyd 文件:Python动态模块
.pyd
文件是Python动态模块(注意它们不是Cython的 .pxd
文件)
这些文件等同于Windows上的DLL(动态链接库)。允许Python与编译后的C或C++代码接口,实现高性能和低级系统交互
要创建 .pyd
文件,通常可以以C或C++编写代码,然后使用针对Windows平台的编译器进行编译。该过程通常涉及使用Microsoft Visual Studio或MinGW等工具
在游戏开发中,高性能的游戏引擎和图形库经常使用 .pyd
文件进行渲染和物理计算
.pyo 文件:优化的Python字节码文件
.pyo
文件用于存储优化的字节码,通常在Python使用优化标志(-O
)运行时创建
例如,在Python 3.5之前,以下列方式运行名为 test.py
的Python脚本将生成一个 test.pyo
文件
注意: 从Python 3.5开始,
.pyo
文件不再使用,优化信息存储在.pyc
文件中
正经的知识又增加了。我是啥都生,下次再见