Мой код сначала записывает строки в CSV в io.StringIO()
:
fileBuffer = io.StringIO()
# write header
header_writer = csv.DictWriter(fileBuffer, fieldnames=columnNames)
header_writer.writeheader()
# write lines
writer = csv.writer(fileBuffer, delimiter=',')
for line in data:
line_dec = line.decode('ISO-8859-1')
# print([line_dec])
writer.writerow([line_dec])
Следующий код также печатает все ожидаемые строки:
$print(fileBuffer.getvalue()) # -> prints all expected rows
Я также могу успешно подключиться кSFTP-сервер, использующий pysftp и даже с помощью pysftp, код успешно возвращает все ожидаемые строки:
with pysftp.Connection(host, username=user, password=pw, cnopts=cnopts) as sftp:
print('sucessfully connected to {} via Port 22'.format(host))
print(fileBuffer.getvalue()) # -> prints all expected rows
sftp.putfo(fileBuffer, file2BeSavedAs) # -> no rows put on FTP Server
Здесь возникает актуальная проблема:
К сожалению, код создает только файлбез записи данных соответственно тела в него. С другой стороны, мой код не возвращает никаких сообщений об ошибках.
Как поместить CSV из StringIO
на SFTP-сервер?