gpt4 book ai didi

python - 从字符串执行命令并对其计时

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:00 27 4
gpt4 key购买 nike

我需要编写一个脚本来接收多个参数,其中最重要的一个
是一个包含命令的字符串(在 linux 中)。

我需要能够运行它,将输出保留在 STDOUT 中(通常),还要对其计时,然后输出一些 .csv 文件。

假设它看起来像这样:

timing_script.py param "echo hello world; cat/tmp/foo_bar"

该命令将每隔几毫秒将内容输出到 STDOUT,我需要它留在那里。我这么说是因为我之前尝试使用此脚本是在 bash 中,我不得不从 time 命令中cut 以实际计时,这也意味着必须忽略命令的输出。

我还必须将类似 param,0.345 的内容附加到 csv 文件。

如何从字符串执行命令并为其计时?

最佳答案

您可以使用 subprocess 从字符串运行 linux 命令,并使用 time 计算执行时间:

import time
from subprocess import Popen, PIPE

start = time.time()

p1 = Popen(["my_linux_cmd"], stdout=PIPE)
print(p1.communicate()) # sdout

end = time.time()
exec_time = end - start
print(exec_time) # exeution time

检查 subprocess.Popen有关可用选项的更多详细信息

警告:要打印标准输出,您还可以使用 Popen.stdout.read 但使用 communicate() 而不是避免由于任何其他操作系统管道缓冲区填满并阻塞子进程而导致的死锁

关于python - 从字符串执行命令并对其计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34412410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com