Python子进程显示在终端上登录并保存在文件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python子进程显示在终端上登录并保存在文件中相关的知识,希望对你有一定的参考价值。

我正在使用子进程运行Python脚本,并愿意将输出保存到文件以及在终端上显示实时日志。 我已将下面的代码及其保存日志写入文件,但未在终端上显示实时脚本执行日志。

TCID = sys.argv[1]

    if TCID == "5_2_5_3":
        output = subprocess.check_output([sys.executable, './script.py'])
        with open('scriptout.log', 'wb') as outfile:
            outfile.write(output)
答案

我认为这将解决您的问题

import subprocess

outputfile = open('scriptout.log', 'a')
process = subprocess.Popen(["ping", "127.0.0.1"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while True:
    output = process.stdout.readline()
    if output == b'' and process.poll() is not None:
        break
    if output:
        out = output.decode()
        outputfile.write(out)
        print(out, end="")

outputfile.close()

我也试过了

import subprocess

output = subprocess.check_output(["ping", "127.0.0.1"])
with open('scriptout.log', 'wb') as outfile:
    print(output)
    outfile.write(output)

但它在命令执行结束后输出。另外我想尝试使用记录模块,但我不知道如何使用它抱歉:(

以上是关于Python子进程显示在终端上登录并保存在文件中的主要内容,如果未能解决你的问题,请参考以下文章

Python子进程 - 在新文件中保存输出

进程与计划任务管理

在 Python 子进程模块中过滤掉需要终端的命令

进程和计划任务管理

Bash命令在终端中有效,但在python脚本中的“子进程”中无效[重复]

Linux中的进程管理