python UnboundLocalError: local variable 'log_f' referenced before assignment 错误
在写一个python程序,用finally处理异常的时候,报了“UnboundLocalError: local variable 'log_f' referenced before assignment”错误。log_f是一个日志文件的对象。概要代码如下
try:
t = paramiko.Transport((host_name,port))
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
t.connect(username=user_name,password=password)
ssh.connect(host_name,port,user_name,password)
sftp = paramiko.SFTPClient.from_transport(t)
log_f = open(log_name,'a')
........................
except Exception,msg:
print "transfile error"
print str(msg)
finally:
log_f.close()
t.close()
ssh.close()
上网查了一下,发现原因如下:如果ssh连接远程服务器出现异常的话,下面的log_f = open(log_name,'a')就不会被执行,及log_f这个文件句柄就不会存在,这样在finally里执行 log_f.close()就会报上面的错误,因为这个文件对象不存在。为了解决这个问题,只需把打开日志文件的操作,放到创建ssh连接前面即可,修改后的代码如下
try:
log_f = open(log_name,'a')
t = paramiko.Transport((host_name,port))
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
t.connect(username=user_name,password=password)
ssh.connect(host_name,port,user_name,password)
sftp = paramiko.SFTPClient.from_transport(t)
........................
except Exception,msg:
print "transfile error"
print str(msg)
finally:
log_f.close()
t.close()
ssh.close()
转载于:https://blog.51cto.com/gtianf/1324372
python UnboundLocalError: local variable 'log_f' referenced before assignment 错误相关推荐
- UnboundLocalError: local variable 'end_page' referenced before assignment
UnboundLocalError: local variable 'end_page' referenced before assignment 错误信息是在指出一个在使用之前没有赋值的局部变量.在 ...
- python 错误--UnboundLocalError: local variable 'num' referenced before assignment
val = 9 def test(flag): if flag: val = 1 else: print("test") return val if __name__ == '__ ...
- UnboundLocalError: local variable ‘a‘ referenced before assignment(Python报错解决)
问题提出 使用Python编程的时候,要注意函数内可以访问全局变量,但不能更新(修改)其值. 比如: a = 10 def sum ( n ) :n += aprint ('a = ', a, end ...
- 【debug】UnboundLocalError local variable a referenced before assignment
1)下面这种情况是不会报错的: >>> x = 10 >>> def bar(): ... print(x) >>> bar() 10 (2)但是 ...
- UnboundLocalError: local variable ‘loss’ referenced before assignment解决方法
UnboundLocalError: local variable 'loss' referenced before assignment 文章目录 UnboundLocalError: local ...
- UnboundLocalError: local variable ‘XXX‘ referenced before assignment解决办法
一.举例: 计算a到10的和 sum=0 def func(a):while a<=10:sum+=aa+=1return sum print(func(9)) 运行结果: UnboundLoc ...
- local variable ‘x‘ referenced before assignment错误
前言:报local variable 'x' referenced before assignment错误 通常是两种原因: 一是函数试图修改全局变量: 二是内部函数试图修改外部函数变量. 先介绍两个 ...
- Python 解决 local variable ‘xxx‘ referenced before assignment
解决 local variable 'xxx' referenced before assignment 在刷leetcode的时候,定义全局变量后在函数中调用总是会出现这个错误,一直没搞明白,现在记 ...
- Python 读写当前路径下文件错误 UnboundLocalError: local variable 'file' referenced before assignment
python读取文件是个比较常用的操作,最近我在读取文件的时候却遇到下面这个问题. 我的代码是: try:file = open("./logs/test")... finally ...
最新文章
- Android软键盘调用及隐藏,以及获得点击软键盘输入的字母信息
- (转)Silverlight数据校验之INotifyDataErrorInfo
- Open***+AD+Google authenticator 安装、配置
- tar压缩解压缩命令详解
- Linux中wait接口用于延时,linux2.6驱动编写参考
- 《剑指Offer》 二叉树的镜像
- 2如何看表分区字段_技术分享|Oracle分区技术的实现总结
- 申请以及集成 Stripe 的 Alipay 支付方案
- 原生JS实现图片懒加载之一:Element.getBoundingClientRect()
- android adb 环境变量配置,Windows如何配置Android的ADB环境变量
- 能上QQ但不能打开网页——解决办法
- 【蓝桥省赛倒计时】B组Java冲刺打卡(三)
- 【工具使用系列】PostScript工具 GhostScript,GSview,Epstool,RedMon
- darts-clone、RABIT交叉编译
- 【2020年高被引学者】 孙剑 旷视科技
- 语法分析程序--编译原理
- 2022-2028全球与中国高级计划和排程软件市场现状及未来发展趋势
- 无人驾驶8: 粒子滤波定位(优达学城项目)
- 如何用python开发app —— 前言
- git 提交 全部文件