我写了一个方法来做一些东西并捕获错误的文件名。应该发生的是如果路径不存在,它会抛出一个IOError。但是,它认为我的异常处理是错误的语法...为什么??
def whatever(): try: # do stuff # and more stuff except IOError: # do this pass whatever()
但在它甚至调用whatever()
之前,它会打印以下内容:
Traceback (most recent call last): File "", line 1, in File "getquizzed.py", line 55 except IOError: ^ SyntaxError: invalid syntax
导入时...帮助?!
答案 0 :(得分:11)
检查你的缩进。这个无用的SyntaxError
错误有 fooled me before. :)
来自已删除的问题:
I'd expect this to be a duplicate, but I couldn't find it.
Here's Python code, expected outcome of which should be obvious:
x = {1: False, 2: True} # no 3
for v in [1,2,3]:
try:
print x[v]
except Exception, e:
print e
continue
I get the following exception: SyntaxError: 'continue' not properly in loop.
I'd like to know how to avoid this error, which doesn't seem to be
explained by the continue documentation.
I'm using Python 2.5.4 and 2.6.1 on Mac OS X, in Django.
Thank you for reading
答案 1 :(得分:3)
<强> 和 强>
你正在使用'as'语法:
except IOError as ioe:
<强> 和 强>
解析器被'as'绊倒了。
使用as
是Python 2.6及更好的首选语法。
这是Python 2.5及更早版本中的语法错误。对于2.6之前的版本,请使用:
except IOError, ioe:
答案 2 :(得分:2)
错过try
块中的内容,即pass
或其他内容,否则会出现缩进错误。
答案 3 :(得分:1)
如果您没有在try
块旁边添加某些内容,则会出现语法错误。
您可以将pass
仅用于保留空格:
try:
# do stuff
# and more stuff
pass
except IOError:
# do this
pass