在 Python 中导入文件

Yahya Irmak 2022年5月17日
在 Python 中导入文件

模块是由 Python 代码组成的文件,其中包含函数、类和变量。本文将解释如何在 Python 中导入其他文件或模块。

在 Python 中导入文件

有许多不同的方法可以在 Python 中导入另一个文件或模块。本文的其余部分将解释这些方法。

示例中使用的 test.py 文件的内容如下。

def func_from_test():
    print("func_from_test called")


def func_from_test_2():
    print("func_from_test_2 called")

使用 import 导入整个模块

import 语句查找模块、加载和初始化。如果使用 as 语句,它会在本地命名空间中为 import 语句出现的范围定义一个名称。

as 表达式的使用是可选的。如果不使用,则模块以其原始形式命名。

要导入多个模块,你可以用逗号编写它们。

以下程序将导入 test.py 中的所有函数。

import test as t

t.func_from_test()
t.func_from_test_2()

使用 from .. import .. 导入特定模块

带有 import 语句的 from 查找在 from 子句中指定的模块、加载和初始化。它检查导入的模块是否具有具有该名称的属性,如果未找到该属性,则会引发 ImportError。

以下程序将仅导入 test.py 中的 func_from_test 函数。

from test import func_from_test

func_from_test()

你可以使用星号 (*) 导入所有函数。

from test import *

func_from_test()
func_from_test_2()

使用 from 语句时,调用导入函数时无需使用模块名称。

使用 exec 从另一个 Python 文件执行函数

exec() 函数提供 Python 代码的动态执行。假设给定一个字符串作为参数;它被解析为稍后执行的 Python 语句包。

open() 函数中指定的文件在下面的示例中打开。文件内容通过 read() 函数读取,并作为字符串参数提供给 exec() 函数。

然后你可以调用 test.py 中的函数。

exec(open("test.py").read())
func_from_test()

使用 os.system 执行 Python 文件

system 命令包含在 os 模块中,并在子 shell 中执行作为字符串给出的命令。在以下示例中,执行 file.py 文件。

import os

os.system("python test.py")

从不同位置导入文件

sys.path 语句包括指定模块搜索路径的字符串列表。我们可以将要安装模块的目录添加到此列表中。

为此,我们使用 os.path.abspath() 函数。此函数返回作为参数给出的路径名的规范化绝对版本。

因此,不同位置的文件被添加到路径中,我们可以使用 import 语句导入它。

from test import *
import sys
import os

sys.path.append(os.path.abspath("/home/user/files"))

func_from_test()
作者: Yahya Irmak
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

相关文章 - Python Module