Python居然有这么多文件扩展

大部分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 * b

print(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 tk

def 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 文件中

正经的知识又增加了。我是啥都生,下次再见

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥都生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值