为了账号安全,请及时绑定邮箱和手机立即绑定

try...catch...else...finally f.close 报错

try:
   f = open('2.txt')
   line = f.read(2)
   num = int(line)
   print 'read num = %d' %num
except IOError,e:
   print 'catch IOError,[%s]' % e
except ValurError,e:
   print 'catch ValueError,[%s]' % e
else:      #当try模块执行完毕,且无任何异常时,进入else模块
   print 'No Error'
finally:
   print 'enter finally.close file'
   f.close()

为什么pycharm编译器上运行这段代码,会提示finally中的f没有定义呢?:

Traceback (most recent call last):

  File "E:/python/test/my/class03.py", line 36, in <module>

    f.close()

NameError: name 'f' is not defined


正在回答

3 回答

https://m.vk.com/@712534118-38297
https://m.vk.com/@712782889-122222
https://m.vk.com/@712781708-92813
https://m.vk.com/@712782082-144491
https://m.vk.com/@712782483-51424
https://m.vk.com/@712781332-148504
https://m.vk.com/@712772904-101084
https://m.vk.com/@712774205-94515
https://m.vk.com/@712534118-38298
https://m.vk.com/@712782889-122224
https://m.vk.com/@712781708-92817
https://m.vk.com/@712782082-144512
https://m.vk.com/@712782483-51425
https://m.vk.com/@712781332-148505
https://m.vk.com/@712772904-101117
https://m.vk.com/@712774205-94516
https://m.vk.com/@712534118-38299
https://m.vk.com/@712782889-122225
https://m.vk.com/@712781708-92819
https://m.vk.com/@712782082-144547
https://m.vk.com/@712782483-51426
https://m.vk.com/@712781332-148506
https://m.vk.com/@712772904-101192
https://m.vk.com/@712774205-94517
https://m.vk.com/@712534118-38300
https://m.vk.com/@712782889-122226
https://m.vk.com/@712781708-92820
https://m.vk.com/@712782082-144588
https://m.vk.com/@712782483-51427
https://m.vk.com/@712781332-148521
https://m.vk.com/@712772904-101284
https://m.vk.com/@712774205-94519
https://m.vk.com/@712534118-38301
https://m.vk.com/@712782889-122227
https://m.vk.com/@712781708-92823
https://m.vk.com/@712782082-144594
https://m.vk.com/@712782483-51428
https://m.vk.com/@712781332-148591
https://m.vk.com/@712772904-101285
https://m.vk.com/@712774205-94520
https://m.vk.com/@712534118-38302
https://m.vk.com/@712782889-122228
https://m.vk.com/@712781708-92825
https://m.vk.com/@712782082-144595
https://m.vk.com/@712782483-51429
https://m.vk.com/@712781332-148611
https://m.vk.com/@712772904-101286
https://m.vk.com/@712774205-94521
https://m.vk.com/@712534118-38303
https://m.vk.com/@712782889-122230
https://m.vk.com/@712781708-92826
https://m.vk.com/@712782082-144598
https://m.vk.com/@712782483-51430
https://m.vk.com/@712781332-148613
https://m.vk.com/@712772904-101287
https://m.vk.com/@712774205-94522
https://m.vk.com/@712534118-38304
https://m.vk.com/@712782889-122231
https://m.vk.com/@712781708-92827
https://m.vk.com/@712782082-144599
https://m.vk.com/@712782483-51431
https://m.vk.com/@712781332-148618
https://m.vk.com/@712772904-101293
https://m.vk.com/@712774205-94523
https://m.vk.com/@712534118-38305
https://m.vk.com/@712782889-122232
https://m.vk.com/@712781708-92831
https://m.vk.com/@712782082-144602
https://m.vk.com/@712782483-51432
https://m.vk.com/@712781332-148619
https://m.vk.com/@712772904-101294
https://m.vk.com/@712774205-94524
https://m.vk.com/@712534118-38306
https://m.vk.com/@712782889-122233
https://m.vk.com/@712781708-92832
https://m.vk.com/@712782082-144603
https://m.vk.com/@712782483-51433
https://m.vk.com/@712781332-148621
https://m.vk.com/@712772904-101295
https://m.vk.com/@712774205-94525
https://m.vk.com/@712534118-38307
https://m.vk.com/@712782889-122234
https://m.vk.com/@712781708-92835
https://m.vk.com/@712782082-144604
https://m.vk.com/@712782483-51435
https://m.vk.com/@712781332-148625
https://m.vk.com/@712772904-101296
https://m.vk.com/@712774205-94526
https://m.vk.com/@712534118-38308
https://m.vk.com/@712782889-122236
https://m.vk.com/@712781708-92836
https://m.vk.com/@712782082-144612
https://m.vk.com/@712782483-51436
https://m.vk.com/@712781332-148627
https://m.vk.com/@712772904-101297
https://m.vk.com/@712774205-94527
https://m.vk.com/@712534118-38309
https://m.vk.com/@712782889-122238
https://m.vk.com/@712781708-92837
https://m.vk.com/@712782082-144613
https://m.vk.com/@712782483-51437
https://m.vk.com/@712781332-148629
https://m.vk.com/@712772904-101327
https://m.vk.com/@712774205-94528
https://m.vk.com/@712534118-38311
https://m.vk.com/@712782889-122239
https://m.vk.com/@712781708-92838
https://m.vk.com/@712782082-144614
https://m.vk.com/@712782483-51438
https://m.vk.com/@712781332-148630
https://m.vk.com/@712772904-101399
https://m.vk.com/@712774205-94529
https://m.vk.com/@712534118-38321
https://m.vk.com/@712782889-122246
https://m.vk.com/@712781708-92840
https://m.vk.com/@712782082-144621
https://m.vk.com/@712782483-51439
https://m.vk.com/@712781332-148631
https://m.vk.com/@712772904-101400
https://m.vk.com/@712774205-94530
https://m.vk.com/@712534118-38324
https://m.vk.com/@712782889-122247
https://m.vk.com/@712781708-92842
https://m.vk.com/@712782082-144622
https://m.vk.com/@712782483-51440
https://m.vk.com/@712781332-148632
https://m.vk.com/@712772904-101401
https://m.vk.com/@712774205-94531
https://m.vk.com/@712534118-38325
https://m.vk.com/@712782889-122248
https://m.vk.com/@712781708-92846
https://m.vk.com/@712782082-144623
https://m.vk.com/@712782483-51441
https://m.vk.com/@712781332-148636
https://m.vk.com/@712772904-101403
https://m.vk.com/@712774205-94533
https://m.vk.com/@712534118-38327
https://m.vk.com/@712782889-122249
https://m.vk.com/@712781708-92847
https://m.vk.com/@712782082-144624
https://m.vk.com/@712782483-51442
https://m.vk.com/@712781332-148638
https://m.vk.com/@712772904-101404
https://m.vk.com/@712774205-94535
https://m.vk.com/@712534118-38331
https://m.vk.com/@712782889-122259
https://m.vk.com/@712781708-92855
https://m.vk.com/@712782082-144629
https://m.vk.com/@712782483-51507
https://m.vk.com/@712781332-148639
https://m.vk.com/@712772904-101405
https://m.vk.com/@712774205-94536
https://m.vk.com/@712534118-38340
https://m.vk.com/@712782889-122262
https://m.vk.com/@712781708-92856
https://m.vk.com/@712782082-144630
https://m.vk.com/@712782483-51548
https://m.vk.com/@712781332-148643
https://m.vk.com/@712772904-101406
https://m.vk.com/@712774205-94537
https://m.vk.com/@712534118-38341
https://m.vk.com/@712782889-122263
https://m.vk.com/@712781708-92858
https://m.vk.com/@712782082-144644
https://m.vk.com/@712782483-51549
https://m.vk.com/@712781332-148644
https://m.vk.com/@712772904-101407
https://m.vk.com/@712774205-94538
https://m.vk.com/@712534118-38343
https://m.vk.com/@712782889-122264
https://m.vk.com/@712781708-92862
https://m.vk.com/@712782082-144645
https://m.vk.com/@712782483-51550
https://m.vk.com/@712781332-148645
https://m.vk.com/@712772904-101408
https://m.vk.com/@712774205-94539
https://m.vk.com/@712534118-38344
https://m.vk.com/@712782889-122265
https://m.vk.com/@712781708-92865
https://m.vk.com/@712782082-144646
https://m.vk.com/@712782483-51551
https://m.vk.com/@712781332-148646
https://m.vk.com/@712772904-101448
https://m.vk.com/@712774205-94541
https://m.vk.com/@712534118-38345
https://m.vk.com/@712782889-122271
https://m.vk.com/@712781708-92866
https://m.vk.com/@712782082-144647
https://m.vk.com/@712782483-51552
https://m.vk.com/@712781332-148649
https://m.vk.com/@712772904-101511
https://m.vk.com/@712774205-94542
https://m.vk.com/@712534118-38356
https://m.vk.com/@712782889-122272
https://m.vk.com/@712781708-92867
https://m.vk.com/@712782082-144658
https://m.vk.com/@712782483-51554
https://m.vk.com/@712781332-148653
https://m.vk.com/@712772904-101515
https://m.vk.com/@712774205-94544


0 回复 有任何疑惑可以回复我~

谢谢,不用了。我看了下一节的内容,已经知道原因了。

0 回复 有任何疑惑可以回复我~
# 我用的是 python3.6, 输出正常!!
try:
   f = open('2.txt')
   line = f.read(2)
   num = int(line)
   print('read num = %d' %num)
except IOError as e:
   print('catch IOError,[%s]' % e)
except ValueError as e:  # 原来你的code有个typo: ValurError
   print('catch ValueError,[%s]' % e)
else:      #当try模块执行完毕,且无任何异常时,进入else模块
   print('No Error')
finally:
   f.close()
   print('enter finally.close file')

# 我的输出: 

catch ValueError,[invalid literal for int() with base 10: '# ']

enter finally.close file


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python错误和异常
  • 参与学习       31678    人
  • 解答问题       31    个

让我们一起来学习Python对于错误和异常的处理方式

进入课程

try...catch...else...finally f.close 报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信