gpt4 book ai didi

python - 如何将 python 的 subprocess.Call 方法输出重定向到文件而不是控制台?

转载 作者:行者123 更新时间:2023-12-01 06:06:59 24 4
gpt4 key购买 nike

我正在子进程模块中使用python的Call方法来执行sqlldr命令

from subprocess import call

retcode = call([self.COMMAND, self.CONNECTION_STRING, "control=" +self.CONTROL_FILE,
"log="+self.TEMP_LOG_FILE, self.MODE , "data="+loadfile])

当我运行上面的脚本时,sqlldr 命令的输出被打印到控制台,我想重定向到文件或忽略它。因为 sqlldr 也会写入指定的日志。

我尝试了类似的方法,将输出重定向到文件,但在这一行抛出错误

retcode = call([self.COMMAND, self.CONNECTION_STRING, "control=" +self.CONTROL_FILE, 
"log="+self.TEMP_LOG_FILE, self.MODE , "data="+loadfile, "> discard.log"])

如何实现这一点?

最佳答案

打开一个文件进行写入并将其作为 subprocess.call 的 stdout 关键字参数传递:

with open('stdout.txt', 'wb') as out:
subprocess.call(['ls', '-l'], stdout=out)

(subprocess.call 接受与 subprocess.Popen 构造函数相同的参数。)

关于python - 如何将 python 的 subprocess.Call 方法输出重定向到文件而不是控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532455/

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