gpt4 book ai didi

python - 如何通过管道将子进程调用传递给文本文件?

转载 作者:IT老高 更新时间:2023-10-28 12:26:47 30 4
gpt4 key购买 nike

subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml",  "/tmp/video_xml"])

现在我有一个可以运行的脚本。当我运行它并到达这一行时,它会开始打印内容,因为 run.sh 中有打印内容。

我如何也将其通过管道传输到文本文件? (如果可能,还可以打印)

最佳答案

如果要将输出写入文件,可以使用 stdout - subprocess.call 的参数。

两者都需要

  • (默认,标准输出是从父级(你的脚本)继承的)
  • subprocess.PIPE(允许您从一个命令/进程通过管道传输到另一个)
  • 文件对象或文件描述符(您想要的,将输出写入文件)

你需要用 open 之类的东西打开一个文件,并将对象或文件描述符整数传递给 call:

f = open("blah.txt", "w")
subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], stdout=f)

我猜任何有效的类似文件的对象都可以工作,比如套接字(喘气:)),但我从未尝试过。

作为 marcog在评论中提到您可能还希望重定向 stderr,您可以使用 stderr=subprocess.STDOUT 将其重定向到与 stdout 相同的位置。上面提到的任何值都可以,你可以重定向到不同的地方。

关于python - 如何通过管道将子进程调用传递给文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4856583/

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