您好我正在尝试使用Paramiko的SFTP客户端将服务器中的远程文件复制到本地位置。以下是代码。
try:
self.SFTP.get(remotepath, localpath, callback=None)
except IOError as e:
print "File Not Found "+self.location
远程位置并不总是包含所请求的文件,因此我想打印错误消息并结束该过程。
不幸的是,它会打印消息(IOError消息),但它也会创建零大小的本地文件。
这是一个错误还是有其他方法可以避免这种情况?
答案 0 :(得分:2)
我会用:
sftp.stat(remotepath)
所以,在你的示例代码中:
try:
if self.SFTP.stat(remotepath):
self.SFTP.get(remotepath, localpath, callback=None)
except IOError as e:
print "File Not Found "+self.location
答案 1 :(得分:1)
预计。
相反,尝试获取一个您不知道是否存在的文件,我建议您:
listdir
命令或file
命令从中获取SFTPFile对象。
close
SFTPFile对象,然后使用get
命令下载文件。