pysftp / Paramiko использует протокол SFTP версии 3.
В протоколе SFTP версии 3 режимы передачи отсутствуют.Или, другими словами, существует только режим передачи binary .
Даже если pysftp / Paramiko поддерживает более новую версию SFTP, которая поддерживает режим text / ascii, маловероятно, чтопомочь тебе.Большинство SFTP-серверов являются OpenSSH.И OpenSSH также использует SFTP 3.
См. Также Как передать двоичный файл в SFTP?
Если вам нужно преобразовать файл в формат Windows, вынужно сделать это заранее, перед передачей файла.
Наивная реализация будет выглядеть так:
WINDOWS_LINE_ENDING = b'\r\n'
UNIX_LINE_ENDING = b'\n'
with open("/local/path/file.txt", "rb") as local_file:
contents = local_file.read()
contents = contents.replace(UNIX_LINE_ENDING, WINDOWS_LINE_ENDING)
with sftp.open("/remote/path/file.txt", "wb") as remote_file:
remote_file.write(contents)
(преобразование на основе Как преобразовать CRLF в LF на компьютере с Windowsв Python )