【发布时间】:2017-12-07 21:17:03
【问题描述】:
目前我正在执行以下任务。
- 在 Windows 中使用 Python 创建一个小文件
- 使用 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 机器有问题:(
【问题讨论】: