当我尝试从python中的ms SQL流式传输BCP命令时,仅在命令完成后才打印行。
但是,当您在终端中运行命令时,您可以看到该进程正在流式传输。 python有什么方法可以实时接收BCP的输出吗?
下面是我尝试过的代码:
bcp_command = ['bcp', target_table, 'in', file_path, '-t', delimiter, '-q', '-c', '-S', settings['server'], '-d', settings['database'], '-U', settings['uid'], '-P', settings['pwd']]
with subprocess.Popen(bcp_command, stdout=subprocess.PIPE, universal_newlines=True) as p:
for line in p.stdout.readlines():
print(line)
if p.returncode:
raise subprocess.CalledProcessError(p.returncode, bcp_command)
预期:BCP命令输出的实时流。
实际:命令完成后立即给出全部输出。