如何从另一个python代码运行python代码

2024-03-29 06:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在不同的文件夹中有多个python代码,它们必须按顺序运行。以前也有类似的问题问过,但答案似乎并不成立。我尝试了以下命令:

subprocess.check_call(["Python", "D:/demo/full_alg.py"])
subprocess.check_output(["Python", "D:/demo/full_alg.py"])
os.system("D:/demo/full_alg.py")

满满的_alg.py公司文件,执行时必须打印出执行代码的文件列表,并创建相应的tiff文件


Tags: 文件答案代码py命令文件夹output顺序
2条回答

我想知道为什么您不尝试导入full_alg.py包并基于main中的函数调用来使用调用的结果。但是,如何精确地执行它在很大程度上取决于full_alg.py的内容。你知道吗

如果您坚持运行运行另一个python脚本的子进程,我建议您查看multiprocessing模块和示例here。你知道吗

代码无法工作的原因可能是Python解释器在PATH中丢失。我建议将完整路径传递给您正在使用的解释器和脚本。在运行subprocess.check_callsubprocess.check_output时应该这样做。对于最后一个(os.system),我认为它不能运行,除非您将python解释器设置为打开*.py文件的默认应用程序,即使这样,它也取决于要运行的操作系统的非明显配置。你知道吗

您可以使用subprocess库,如下所示:

import subprocess

args = ['{}/manage.py'.format('/home/<you>/<path>'), 'runserver']
subprocess.Popen(args, stdout=subprocess.PIPE)

遵循以下方法:My answer in another post


[更新]:

这是python3的一个例子:

import subprocess

python_version = '3'
path_to_run = './'
py_name = '__main__.py'

# args = [f"python{python_version}", f"{path_to_run}{py_name}"]  # Available in python3
args = ["python{}".format(python_version), "{}{}".format(path_to_run, py_name)]

res = subprocess.Popen(args, stdout=subprocess.PIPE)
output, error_ = res.communicate()

if not error_:
    print(output)
else:
    print(error_)

相关问题 更多 >