我正在子进程模块中使用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/