Python 运行另一个 Python 脚本
-
使用
import
语句在另一个 Python 脚本中运行 Python 脚本 -
使用
execfile()
方法在另一个 Python 脚本中运行 Python 脚本 -
使用
subprocess
模块在另一个 Python 脚本中运行 Python 脚本
包含旨在由客户端直接执行的 Python 代码的基本文本文件通常称为脚本,正式称为顶级程序文件。
脚本旨在直接在 python 中执行。学习运行脚本和代码是在 Python 编程世界中学习的一项基本技能。Python 脚本通常具有扩展名 '.py'
。如果脚本在 Windows 机器上运行,它可能有一个扩展名,.pyw
。
本教程将讨论在另一个 Python 脚本中运行 Python 脚本的不同方法。
使用 import
语句在另一个 Python 脚本中运行 Python 脚本
import
语句用于将多个模块导入 Python 代码。它用于从模块访问特定代码。此方法使用 import
语句将脚本导入 Python 代码并将其用作模块。模块可以定义为包含 Python 定义和语句的文件。
以下代码使用 import
语句在另一个 Python 脚本中运行 Python 脚本。
Script1.py
:
def func1():
print("Function 1 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func1()
输出:
Function 1 is active
Script2.py
:
import Script1.py
def func2():
print("Function 2 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func2()
Script1.func1()
输出:
Function 2 is active
Function 1 is active
使用 execfile()
方法在另一个 Python 脚本中运行 Python 脚本
execfile()
函数在解释器中执行所需的文件。此函数仅适用于 Python 2。在 Python 3 中,execfile()
函数已被删除,但在 Python 3 中使用 exec()
方法可以实现相同的功能。
以下代码使用 execfile()
函数在另一个 Python 脚本中运行 Python 脚本。
Script2.py
:
# Python 2 code
execfile("Script1.py")
输出:
Function 1 is active
同样的事情可以在 Python 3 中使用:
Script2.py
:
exec(open("Script1.py").read())
输出:
Function 1 is active
使用 subprocess
模块在另一个 Python 脚本中运行 Python 脚本
subprocess
模块能够产生新的进程,也可以返回它们的输出。这是一个新模块,旨在替换多个旧模块,例如 os.system
,后者以前用于在另一个 Python 脚本中运行 Python 脚本。
以下代码使用 subprocess
模块在另一个 Python 脚本中运行 Python 脚本。
Script1.py
:
def func1():
print("Function 1 is active")
if __name__ == "__main__":
# Script2.py executed as script
# do something
func1()
Script2.py
:
import subprocess
subprocess.call("Script1.py", shell=True)
输出:
Function 1 is active
尽管这三种方法都工作得很好,但与其他两种方法相比,这种方法具有优势。此方法不需要编辑现有的 Python 脚本并将其包含的所有代码放入子例程中。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn