在 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
语句导入它。
import sys
import os
sys.path.append(os.path.abspath("/home/user/files"))
from test import *
func_from_test()
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn