Python执行 SQL 命令并实时打印输出
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python执行 SQL 命令并实时打印输出相关的知识,希望对你有一定的参考价值。
需要借助exe_command
函数,该函数通过subprocess执行 shell 命令,并实时打印输出。
from subprocess import Popen, PIPE, STDOUT
def exe_command(command):
"""
执行 shell 命令并实时打印输出
:param command: shell 命令
:return: process, exitcode
"""
print(command)
process = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True)
with process.stdout:
for line in iter(process.stdout.readline, b''):
print(line.decode().strip())
exitcode = process.wait()
return process, exitcode
def exe_sql_command(sql_command, redirect=None):
"""
执行 hive sql 命令并转储到文件
:param sql_command: sql 命令
:param redirect: 是否重定向输出到文件
:return: process, exitcode
"""
command = "hive -e \\"%s\\"" % sql_command
if redirect:
command += f" > redirect"
return exe_command(command)
def exe_sql_file(sql_file, redirect=None):
"""
执行 hive sql 文件并转储到文件
:param sql_file: sql 文件
:param redirect: 是否重定向输出到文件
:return: process, exitcode
"""
command = f"hive -f sql_file"
if redirect:
command += f" > redirect"
return exe_command(command)
以上是关于Python执行 SQL 命令并实时打印输出的主要内容,如果未能解决你的问题,请参考以下文章