Python Paramiko SFTP客户端在抛出IOError后创建零大小的文件
您好,我正在尝试使用Paramiko的SFTP客户端将服务器中的远程文件复制到本地位置。下面是代码Python Paramiko SFTP客户端在抛出IOError后创建零大小的文件,python,ssh,sftp,paramiko,Python,Ssh,Sftp,Paramiko,您好,我正在尝试使用Paramiko的SFTP客户端将服务器中的远程文件复制到本地位置。下面是代码 try: self.SFTP.get(remotepath, localpath, callback=None) except IOError as e: print "File Not Found "+self.location 远程位置并不总是包含请求的文件,因此我想打印错误消息并结束进程 不幸的是,它会打印消息(IOError消息),但也会
try:
self.SFTP.get(remotepath, localpath, callback=None)
except IOError as e:
print "File Not Found "+self.location
远程位置并不总是包含请求的文件,因此我想打印错误消息并结束进程
不幸的是,它会打印消息(IOError消息),但也会创建大小为零的本地文件
这是一个bug还是有其他方法可以避免它?这是意料之中的
与其尝试获取一个您不知道是否存在的文件,我建议您:
- 首先尝试使用Paramiko SFTP
命令查找它,或者listdir
- 尝试使用Paramiko SFTP
命令从中获取SFTPFile对象。file
- 如果失败,则文件不存在李>
- 如果成功,只需关闭SFTPFile对象,并使用
命令下载文件get
- 我会使用:
sftp.stat(远程路径)
因此,在示例代码中:
try:
if self.SFTP.stat(remotepath):
self.SFTP.get(remotepath, localpath, callback=None)
except IOError as e:
print "File Not Found "+self.location
当前,我正在做的是在抛出异常后使用os.remove(localpath)删除文件。我正在寻找一种通过SFTP客户端消除文件创建的方法。谢谢你的建议,不客气。(我可以建议你投票表决吗?)