我在不同文件夹中有多个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")
执行full_alg.py文件时,必须打印出执行代码的文件列表,并创建相应的tiff文件
答案 0 :(得分:0)
我想知道你为什么不试图导入full_alg.py
包并且基于main中的函数调用消耗调用的结果。如何准确地做到这很大程度上取决于full_alg.py
的内容。
如果您坚持运行运行另一个python脚本的子进程,我建议您查看multiprocessing
模块和示例here。
您的代码无效的原因可能是Python
中PATH
解释程序丢失。我建议将完整路径传递给您正在使用的解释器和脚本。如果运行subprocess.check_call
或subprocess.check_output
,则应执行此操作。对于最后一个(os.system
)我不认为它可以运行,除非你设置python解释器作为打开*.py
文件的默认应用程序,即使这样,它依赖于非显而易见的配置要运行的操作系统。
答案 1 :(得分:0)
您可以使用subprocess
库,如下所示:
import subprocess
args = ['{}/manage.py'.format('/home/<you>/<path>'), 'runserver']
subprocess.Popen(args, stdout=subprocess.PIPE)
请遵循以下方法:My answer in another post
[UPDATE]:
这是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_)