【发布时间】:2026-02-14 13:50:01
【问题描述】:
所以我创建了一个记录到文件和控制台的记录器。但是,我需要调用子进程来运行其他 python 文件,但问题是控制台和文件只有在子进程完成后才会填充日志消息,即使我已经在 python 文件中实现了日志记录。我希望它在子进程期间登录到控制台。也就是说,我可以在其他文件的运行过程中看到输出。
有什么想法吗?还是有其他方法可以在 python 中运行 python 文件?
我的子进程函数:
def _run_cmd(args_list):
"""
run linux commands
"""
# import subprocess
print('Running system command: {0}'.format(' '.join(args_list)))
proc = subprocess.Popen(args_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
s_output, s_err = proc.communicate()
s_return = proc.returncode
return s_return, s_output, s_err
我在哪里调用子流程:
try:
s_return, s_output, s_err = _run_cmd(["python", abs_path])
if s_err:
finish_fail(config, logger)
except Exception as e:
logger.error("error", str(e))
abs_path 是我要运行的文件的位置。
【问题讨论】:
标签: python subprocess