使用sramp和paramiko将整个文件夹传输到服务器。我从stackoverflow
复制此代码但我怀疑是如何调用该函数,我这样说..
sftp = paramiko.SFTPClient.from_transport(t)
M = MySFTPClient()
M.put_dir()
M.mkdir()
但它抛出了这个错误:
*** Caught exception: <type 'exceptions.TypeError'>: __init__() takes exactly 2 arguments (1 given)
答案 0 :(得分:1)
我没有使用过Paramiko,但是阅读源代码似乎已经可以使用from_transport方法返回的sftp对象了。因此无需创建另一个MySFTPClient()
在Python控制台中尝试阅读帮助(paramiko.SFTPClient)和帮助(paramiko.SFTPClient.from_transport)。另外浏览sftp.py似乎很有用,因为可用命令列表在开头(put_dir似乎不是其中之一)。
答案 1 :(得分:1)
错误消息表明您正在调用的函数在发送零时带有两个参数。尝试做这样的事情:
t = paramiko.Transport(("ftpexample.com", 22))
t.connect(username = myusername, password = mypassword)
sftp = paramiko.SFTPClient.from_transport(t)
使用sftp客户端将您的文件在localpath(例如/usr/tmp/test.png")上传到您的远程路径:
sftp.put("localpath","remotepath")