我的代码首先将行写入 CSVio.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
我还可以使用 pysftp 成功连接到 SFTP 服务器,甚至在使用 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 服务器?