如何在 Windows 中处理换行符 vs 在 Python Paramiko 中处理 Unix
How to deal with new line characters in Windows vs Unix in Python Paramiko
目前我正在做以下任务
- 使用 Python
在 Windows 中创建一个小文件
- 使用 Paramiko Python 库 SFTP 模块将此文件传输到远程 Unix 环境
面临的问题:
在 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 机器有问题:(
Paramiko 不支持转换传输文件的 EOL 序列。
上传前必须转换内容
见。
目前我正在做以下任务
- 使用 Python 在 Windows 中创建一个小文件
- 使用 Paramiko Python 库 SFTP 模块将此文件传输到远程 Unix 环境
面临的问题:
在 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 机器有问题:(
Paramiko 不支持转换传输文件的 EOL 序列。
上传前必须转换内容
见