博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python出现local variable 'f' referenced before assiginment""
阅读量:4916 次
发布时间:2019-06-11

本文共 956 字,大约阅读时间需要 3 分钟。

在函数中使用try...finally....。在使用过程中try中打开文档,finally关闭文档。

由于在try中打开的文档不存在,因而f参数没有存进入,文档根本没打开,就不可能关闭,所以在finally中报错local variable 'f' referenced before assiginment""。

我之前在网上查找说是加global,也没有管用。

解决方法很简单,在函数中try之前提前给'f'赋值,添加f=None

1     def GetIfConfigmode(cls, ifname): 2         configmode = "UNKNOWN" 3         f = None 4         try: 5             commands.getstatusoutput("echo ifname=%s >> /tmp/debug.log"%ifname) 6             f = open("/etc/sysconfig/network-scripts/ifcfg-%s"%ifname, "r") 7             ifaceRE=re.compile('BOOTPROTO=\"(.*)\"') 8             for line in f.readlines(): 9                 match = ifaceRE.match(line)10                 if match:11                     configmode = match.group(1).strip().upper()12                     break13         except Exception, e:14             pass15         finally:16             if f != None:17                 f.close()18         return configmode

 

转载于:https://www.cnblogs.com/chenyaling/p/5753243.html

你可能感兴趣的文章
.NET笔试题集(二)
查看>>
原码, 反码, 补码 详解
查看>>
BZOJ4154 : [Ipsc2015]Generating Synergy
查看>>
我的一个小App——谈天气
查看>>
【DevExpress v17.2新功能预告】DevExtreme TreeList
查看>>
Fitnesse框架介绍(一)
查看>>
Codeforces Round #FF (Div. 2) 题解
查看>>
Mysql Programming CS 155P笔记(三)
查看>>
我的感情,仍是如此,卦卦如此
查看>>
这样一套操作要练习多久
查看>>
linux系统管理(1)之 内核编译选项查看
查看>>
HDMI中checksum计算法
查看>>
Android入门之旅3—ubuntu11.4上通过adb连接M9手机
查看>>
将eclipse上的web项目部署到Tomcat服务器上经验总结
查看>>
SQLPLUS –> Metalink - (INVItemCt115h.sql ) Note: 223702.1
查看>>
django
查看>>
通过分区(Partition)提升MySQL性能
查看>>
JAVA.exe进程
查看>>
mysql安装及常见问题
查看>>
Thinkphp .htaccess 与 httpd.ini文件重定向转换问题
查看>>