与Python相关的文件后缀介绍

前言

是不是很多人都跟我一样,尽管有这 Python编程的能力,但是对于 python 的文件后缀却知之甚少,可能最常见的就是.py.ipynb了,所以今天刚好看到了一篇文章在介绍关于Python的文件后缀,所以就自己也去了解了一下,并且将其写出来,供同学们一起了解下。

.py

基本介绍

这是Python的标准文件扩展名,用于包含Python代码。.py文件包含了可执行的Python代码,可以直接在Python解释器中运行或通过命令行执行。它是最常见的Python文件类型,用于编写和运行Python程序。

示例

main.py

1
2
3
def hi(){
print('hello world')
}

上面的main.py就是我们在学习Python时候,简单的入门代码,那么.py文件主要就是用来开发并运行程序的一种文件后缀,有了代码的.py文件,我们就可以通过在 Python解释器中运行

1
python main.py

.ipynb

基本介绍

这是Jupyter Notebook文件的扩展名,它是一个交互式的笔记本文件格式。.ipynb文件不仅包含Python代码,还可以包含文本、图像、公式等其他类型的内容。Jupyter Notebook提供了一个可交互的环境,允许您在代码和笔记之间切换,并以交互方式执行代码块。

示例

目前这种文件后缀多用于做一些数据分析,深度学习,机器学习等。

我们直接在Pycharm里新建一个.ipynb文件来看看效果,相较于.py文件,这种文件更便于开发人员去查看一些中间结果,所以做数据分析等需要以局部代码的中间产物(包括图标)作为后续开发内容的,都会使用.ipynb文件。

main.ipynb

image-20230917165912531

.pyi

基本介绍

这是Python类型提示文件的扩展名,用于提供静态类型信息。它是为了支持类型检查工具(例如mypy)而引入的。.pyi文件通常用于描述第三方库或没有源代码可用的模块的类型信息。它们包含函数、类和变量的声明,但没有实际的实现代码。一般用于帮助开发人员进行类型检查静态分析

注意事项:.pyi文件的命名约定通常与相应的.py文件相同,以便它们可以被自动关联在一起。

示例

首先,我们新建一个example.pyi,声明一个say函数(包括,参数和返回类型)

example.pyi

1
2
def say(who: str, msg: str) -> str:
pass

其次,在同级目录下,我们新建一个example.py文件,写一个 say 函数的具体实现(这里我们故意不声明类型)

example.py

1
2
3
def say(a, b):
# 具体实现
return f'{a},{b}'

最后,写一个入口类main.py

main.py

1
2
3
4
5
from example import say

if __name__ == '__main__':
s = say('tiny', 'hi ~')
print(s)

当我们企图在调用say函数的时候,传入一个int类型的参数,Pycharm会提示我们并没有存在int类型的参数,这是我们的.pyi文件生效了。

image-20230917171300578

.pyc

基本介绍

这是Python编译文件的扩展名,它是由Python解释器自动创建的字节码文件。字节码是一种中间形式的代码,它比源代码更接近机器语言,可以更快地执行。当您运行一个.py文件时,Python解释器会将源代码编译为.pyc文件,并执行其中的字节码。

我们都知道,Python的运行方式是通过Python解释器,所以当我们运行.py文件的时候,实际上我们的解释器会帮我们将.py文编译成.pyc 文件,这一步骤是我们不需要关心的。.pyc文件包含了已编译的字节码,它可以更快地被Python解释器加载和执行,因为解释器无需再次编译源代码。

示例

.pyd

基本介绍

这是Python扩展模块的扩展名,它是用CC++编写的包含Python可调用函数的动态链接库。.pyd文件通常由第三方库或用于优化性能的本地编译模块使用。在Python中, .pyd文件通过import语句在Python中导入和使用,就像导入普通的Python模块一样。

由于CC++的执行速度通常比纯Python代码快,可以使用扩展模块来优化Python代码的性能,尤其是对于计算密集型任务。

示例

因为我对Cc++的语言使用能力有限,所以就不献丑了,直接贴一段线上的示例,大家知道了.pyd文件这是干嘛用的就行

example.pyd(C/C++ 实现)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Python.h>

static PyObject* multiply_numbers(PyObject* self, PyObject* args) {
int a, b;
if (!PyArg_ParseTuple(args, "ii", &a, &b)) {
return NULL;
}
return PyLong_FromLong(a * b);
}

static PyMethodDef module_methods[] = {
{"multiply_numbers", multiply_numbers, METH_VARARGS, "Multiply two numbers"},
{NULL, NULL, 0, NULL}
};

static struct PyModuleDef

.pyw

基本介绍

.pyw文件是一种特殊的Python脚本文件后缀,与常见的.py文件相比,.pyw文件在Windows系统上运行时不会打开一个命令行窗口,而是在后台静默运行。这使得它非常适合用于编写不需要用户交互或命令行界面的Python应用程序,例如GUI程序。

通过将.py文件更改为.pyw文件,可以实现以下效果:

  1. 去除命令行窗口:当您运行.pyw文件时,在Windows系统上将不会弹出一个新的命令行窗口。这意味着您的Python应用程序将在后台静默运行,而用户不会看到控制台输出。
  2. 适用于GUI应用程序:如果您正在编写一个基于图形用户界面(GUI)的Python应用程序,.pyw文件可以更好地与GUI框架(如TkinterPyQt等)集成。因为GUI应用程序通常通过窗口界面与用户进行交互,而不需要命令行输入和输出。

示例

gui_app.pyw

1
2
3
4
5
6
7
8
9
10
11
12
13
import tkinter as tk

# 创建一个简单的GUI窗口
window = tk.Tk()
window.title("GUI App")
window.geometry("300x200")

# 在窗口中添加一个标签
label = tk.Label(window, text="Welcome to the GUI App!")
label.pack()

# 启动GUI事件循环
window.mainloop()

.pyx

基本介绍

Cython是一种编译型的静态类型扩展语言,它允许在Python代码中使用C语言的语法和特性,以提高性能并与C语言库进行交互。

.pyx文件是用于Cython的源代码文件后缀。Cython是一个将Python代码转换为C语言的工具,以提高Python代码的执行速度和性能。通过编写.pyx文件,您可以将Python代码与C语言混合编写,以获得更高效的执行。

示例

总结

基本上来说,对于上面的文件后缀,我们需要做到知道这些python文件后缀都是应用于什么场景的,至于是否要去深入学习就取决各位的岗位需求了,所以本文就是一个科普文,让我们对Python文件后缀有个初步的了解认知。


与Python相关的文件后缀介绍
https://gcoder5.com/2023/09/17/与Python相关的文件后缀介绍/
作者
Gcoder
发布于
2023年9月17日
许可协议