我正在尝试将CSV文件从本机上传到SFTP服务器。我不知道为什么我的代码无法找到该文件。需要一点帮助来确定问题。这是我的代码
import pysftp as sftp
def sftpExample():
try:
cnopts = sftp.CnOpts()
cnopts.hostkeys = None
s = sftp.Connection(host='abc.net', username='xyz', password='aaaaaaaaaaaa',cnopts=cnopts)
remotepath = 'http://sftp.abc.net/uploads/'
localpath = '/Users/ashish.verma/Desktop/Text.rtf'
s.put(localpath,remotepath)
s.close()
except Exception as e:
print(e)
sftpExample()
与SFTP服务器的连接成功,但是我不知道为什么我的代码无法在本地计算机上找到文件。错误消息说:
没有这样的文件
答案 0 :(得分:2)
pysftp Connection.put
method的remotepath
参数是文件路径。不是目录URL ,只允许 HTTP URL。
应为:
remotepath = '/uploads/Text.rtf'
s.put(localpath, remotepath)
或者,您可以省略该参数,使pysftp以原始文件名(取自localpath
)将文件上传到当前的远程工作目录:
s.cd('/uploads')
s.put(localpath)
强制性警告:除非您不关心安全性,否则请不要设置cnopts.hostkeys = None
。有关正确的解决方案,请参见Verify host key with pysftp。