sha*_*lpk 23 python variables scope try-catch python-imaging-library
import Image
import os
for dirname, dirs, files in os.walk("."):
for filename in files:
try:
im = Image.open(os.path.join(dirname,filename))
except IOError:
print "error opening file :: " + os.path.join(dirname,filename)
print im.size
Run Code Online (Sandbox Code Playgroud)
在这里,我试图打印目录(和子)中所有文件的大小.但我知道im在排队时超出范围im.size.但是如果不使用else或finally阻止我怎么办呢.
显示以下错误:
Traceback (most recent call last):
File "batch.py", line 13, in <module>
print im.size
NameError: name 'im' is not defined
Run Code Online (Sandbox Code Playgroud)
bru*_*ers 22
"else"条款有什么问题?
for filename in files:
try:
im = Image.open(os.path.join(dirname,filename))
except IOError, e:
print "error opening file :: %s : %s" % (os.path.join(dirname,filename), e)
else:
print im.size
Run Code Online (Sandbox Code Playgroud)
现在,既然你处于循环中,你也可以使用"继续"语句:
for filename in files:
try:
im = Image.open(os.path.join(dirname,filename))
except IOError, e:
print "error opening file :: %s : %s" % (os.path.join(dirname,filename), e)
continue
print im.size
Run Code Online (Sandbox Code Playgroud)