paramiko sftp.get 方法
我正在尝试使用paramiko通过SFTP下载一个文件。我是这样创建SFTP对象的:
transport = paramiko.Transport((sftp_server, sftp_port))
transport.connect(username = sftp_login, password = sftp_password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get("file_name", '.', None)
然后,我遇到了这个异常:
Exception python : Folder not found: \\$IP_ADDRESS\folder_1/folder_2\file_name.
我正在使用paramiko连接到一个被限制的SFTP客户端。这个文件'file_name'位于我客户端的根目录下。
- 我不明白为什么会出现这个错误,显示的似乎是我客户端服务器的完整路径(在限制外)。
- 我不知道为什么我的测试文件没有被下载 :O
如果需要,我会提供任何必要的信息。
1 个回答
6
以下代码在我的Ubuntu 11.10系统上运行得很好:
sftp.get("file_name", "file_name")
我只做了几个小改动,这些改动应该不会影响到你的问题:
localpath
:我用了文件的完整路径,而不是简单地用'.'
(因为目录是不允许的)callback
:把它去掉了,因为None
已经是默认值,其实不需要这个
由于我没有遇到你在remotepath
参数上遇到的错误,我猜可能是你用的sftp服务器和我用的不同,行为也不一样。
我的建议是:
- 用其他客户端验证一下,比如用
sftp
命令,确认一下你要找的文件确实在你想要的位置。 - 使用
sftp.chdir
来确保当前使用的默认目录是你预期的那个。
希望这些能帮到你。