gpt4 book ai didi

Python subprocess.call 函数不重定向输出

转载 作者:IT王子 更新时间:2023-10-29 01:22:21 25 4
gpt4 key购买 nike

我正在尝试从一个 python 文件中运行一个名为 nn.sh 的 shell 脚本(它不断运行一个 Linux 命令)。我正在使用以下代码:

from subprocess import call, Popen, PIPE
call(['/bin/sh', 'nn.sh', '172.20.125.44', '10', '>>', 'log.txt'])

此代码应该以输入 172.20.125.4410 运行 nn.sh 并将结果存储在文件 中日志.txt。当我运行这个 Python 脚本时,它只在屏幕上显示运行 nn.sh 的结果,并没有将它们保存在填充的 log.txt 中。但是,如果我输入

/bin/sh nn.sh 172.20.125.44 10 >> log.txt

在命令行中,它正确地将所有数据保存到文件 log.txt 中。关于哪里出了问题有什么想法吗?

最佳答案

您不能在子进程调用中使用 >>,而是使用 stdout 参数:

with open("log.txt", "at") as log:
call(['/bin/sh', 'nn.sh', '172.20.125.44', '10'], stdout = log)

关于Python subprocess.call 函数不重定向输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25496364/

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