gpt4 book ai didi

golang监控cmd输出

转载 作者:IT王子 更新时间:2023-10-29 02:05:35 26 4
gpt4 key购买 nike

我想监控进程状态。任务差不多就是这样。 t.py 每秒输出一个数字,我想使用 test.go 将这个数字存储到一个文件中。不幸的是,以下代码无法完成这项工作。

t.py:

import time
from sys import stdout

i=0
while 1:
print("%d" % i)
time.sleep(1)
i += 1

测试.go

import (
"bufio"
"fmt"
"os"
"os/exec"
)

func main() {
cmd := exec.Command("python", "t.py")
stdout, err := cmd.StdoutPipe()
if err != nil {
fmt.Println(err)
}
scanner := bufio.NewScanner(stdout)
err = cmd.Start()
if err != nil {
fmt.Println(err)
}
for scanner.Scan() {
line := scanner.Text()
f, _ := os.Create("./temp.txt")
fmt.Fprintf(f, "then %s\n", line)
f.Close()
}
}

最佳答案

输出被缓冲。在 print

之后添加 stdout.flush()
import time
from sys import stdout

i=0
while 1:
print("%d" % i)
stdout.flush()
time.sleep(1)
i += 1

关于golang监控cmd输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021552/

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