В чем разница между pass
и continue
?
pass
не работает, он говорит Python просто ничего не делать и переходить к следующей инструкции.
continue
- операция цикла, она говорит Python игнорировать любой другой код, оставшийся в этой итерации цикла, и просто перейти к следующей итерации, как если бы он достиг конца блока цикла.
Например:
def foo():
for i in range(10):
if i == 5:
pass
print(i)
def bar():
for i in range(10):
if i == 5:
continue
print(i)
Первый напечатает 0,1,2,3,4, 5 , 6,7,8,9, но второй напечатает 0,1,2,3, 4 , 6 , 7,8,9, поскольку оператор continue
заставит python вернуться к началу и не перейти к инструкции print
, тогда как pass
продолжит выполнение цикла в обычном режиме.
Почему вышеуказанный код не работает?
Проблема с вашим кодом заключается в том, что блок try
находится вне цикла, как только возникает исключение внутри цикла, цикл завершается в этой точке и переходит к блоку except
вне цикла. Чтобы это исправить, просто переместите блоки try
и except
в цикл for
:
try:
condition = True
list = ['file1', 'file2', 'file3']
for item in list:
try:
# open the file 'item' somewhere here
if condition == True
union = <insert process>
....a bunch of other stuff.....
except IOError:
# this will now jump back to for item in list: and go to the next item
continue
.....a bunch more stuff.....
except Exception as e:
logfile.write(e.message)
logfile.close()
exit()