use*_*257 0 python nested-loops
伙计们,
我已经辞职以解决这个问题,但我想检查Python是否真的按预期运行.
在示例中,"sample.txt"是任何读取和解析的多行文本文件.
try:
file=open('sample.txt','r')
for line in file:
(some action here)
except:
print "Couldn't open file"
file.close()
Run Code Online (Sandbox Code Playgroud)
我观察到的动作是打开"sample.txt"并处理第一行,然后逻辑进入"except"子句.
WAD还是这个bug?
如果except块中的代码运行,则是因为引发了异常.你吞下这个例外,这让人很难知道出了什么问题.
您的错误消息表明您正在尝试捕获文件打开时引发的错误.但由于您的try块围绕文件的整个处理,因此处理中引发的异常(而不是文件打开)将被错误报告为"无法打开文件".如果你真的必须处理异常,那么你需要将for循环移动到except块之后.
就个人而言,我倾向于简单地忽略异常并让异常的默认处理暂停执行:
with open('sample.txt','r') as file:
for line in file:
(some action here)
Run Code Online (Sandbox Code Playgroud)
如果必须处理异常,则要辨别您处理的类异常.例如,处理只是IOError因为那是open在失败的情况下引起的.
try:
with open('sample.txt','r') as file:
for line in file:
(some action here)
except IOError:
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7488 次 |
| 最近记录: |