Python 运行另一个 Python 脚本
本教程将讨论在另一个 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 脚本并将其包含的所有代码放入子例程中。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。