" put()至少需要3个参数(2个给定)"当调用Paramiko sftp.put时

时间:2015-10-23 14:19:43

标签: python sftp scp paramiko

我想使用SCP / SFTP将本地计算机上的文本文件复制到远程服务器上。我已经在源和目的地之间建立了一个SSH通道。

sftp.put('sourcepath, destinationpath')

上面的命令会出错:

  

TypeError:put()至少需要3个参数(给定2个)

1 个答案:

答案 0 :(得分:1)

这是关于Python的问题,而不是Paramiko。

您具有传递参数错误的语法。

put方法定义为

def put(self, localpath, remotepath, callback=None, confirm=True):

电话应该是:

sftp.put('sourcepath', 'destinationpath')

使用您的语法,您将在字符串 value 中使用逗号传递一个字符串参数(到localpath)。

Python错误消息有点令人困惑,因为它甚至会计算隐式self参数。因此,您为2个参数提供了值self(隐式地由sftp.生成)和localpath(由'sourcepath, destinationpath'显式提供)。您缺少第3个必需参数remotepath。其他参数是可选的。