我希望能够使用python中的scp,ssh或sftp从远程计算机复制文件。我发现的最好的方法是使用带有sftp的ssh。我一直试图用这个例子来完成我需要做的事情。
import paramiko
import os
paramiko.util.log_to_file('logfile.log')
host = "101.102.103.104"
port = 22
transport = paramiko.Transport((host, port))
password = "pass"
username = "user"
sftp = paramiko.SFTPClient.from_transport(transport)
filepath = '~/remote/file'
localpath = '~/local/file'
sftp.get(filepath, localpath)
sftp.close()
transport.close()
当我这样做时,我收到此错误:
Traceback (most recent call last):
File "example.py", line 19, in <module>
sftp.get(filepath, localpath)
AttributeError: 'NoneType' object has no attribute 'get'
我有什么遗漏或没有做错吗?
谢谢
答案 0 :(得分:1)
您的用户名和密码已初始化但从未使用过。您需要为传输对象
调用 connectpassword = "pass"
username = "user"
transport.connect(username = username, password = password)
答案 1 :(得分:0)
API指定您必须向paramiko.Transport()
提供“套接字对象”以提供元组。我猜这就是问题所在。
<强>更新强> 虽然在文档中另有说明,但元组是可以的。