В настоящее время я выполняю задачу ниже.
- Создайте небольшой файл в Windows с помощью Python
- Перенесите этот файл в удаленную среду Unix с помощью модуля SFTP библиотеки Paramiko Python.
Столкнулся с проблемой:
Новая строка, созданная в Windows, неправильно преобразуется в символ новой строки Unix во время передачи. Я вижу ^M
символов внутри файла на моем удаленном хосте.
Любая идея или предложение, как я могу избавиться от этого поведения.
Когда я делаю передачу того же файла с помощью WinSCP, я не сталкиваюсь с этой проблемой. Я предполагаю, что WinSCP имеет встроенную возможность справиться с этим.
Используемая версия Python 3.5.
Шаг 1:
with open(myNewFile.txt,'w') as fileToUpload:
fileToUpload.write('MyOwnTxt'+'\n')
Шаг 2:
COMP = remoteServerHost
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(COMP, username=user, password=password, allow_agent = False)
src = myNewFile.txt
dst = "/remotePath/myNewFile.txt"
ftp = ssh.open_sftp()
ftp.put(src , dst)
ftp.close()
ssh.close()
Я немного удивлен, потому что никто не указал эту проблему в SO или любом другом форуме. Так что я чувствую, что на моей машине с Windows что-то не так :(