Когда я пытаюсь передать команду BCP из ms SQL в python, строки печатаются только после завершения команды.
Однако, когда вы запустите команду в своем терминале, вы увидите, что процесс там идет. Есть ли способ для 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 в реальном времени.
Фактически: весь вывод дан всемсразу после завершения команды.