python应用优雅关闭_Python如何优雅的关闭连接对象

在使用Python连接数据库、sftp等时,我们需要在连接使用完成后或执行重连时关闭连接对象以回收资源。那么该如何优雅的来关闭这些连接对象或游标呢?

以SFTP连接为例做一个示例:

import paramiko

try:

ssh_conn = paramiko.Transport((host, port))

ssh_conn.connect(username=username, password=password)

sftp_client = paramiko.SFTPClient.from_transport(ssh_conn)

sftp_client.get(sftp_file, local_file)

except Exception as e:

# do something

pass

finally:

if hasattr(sftp_client, "close") and callable(sftp_client.close):

sftp_client.close()

if hasattr(ssh_conn, "close") and callable(ssh_conn.close):

ssh_conn.close()

在try中进行ssh连接及sftp连接,并进行连接后的操作,except中捕获异常,finally中无论两个连接对象获取是否成功都会执行,关闭ssh及sftp连接。

先使用hasattr方法及callable判断对象是否存在close方法且是否可调用,再调用close方法关闭连接对象,避免某个连接失败时调用close方法出现错误。

以上方式同样适用于其他连接,比如MySQL的连接对象及游标对象的关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值