尝试在 while 循环中除外 - python
try except in a while loop - python
在解释我的问题之前,我分享了我的代码,以便更容易直接从那里开始。
import matplotlib.pylab as plt
import os
while True:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
except FileNotFoundError:
print('Entered image name does not exist.')
img_name = input('Please enter another image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
我希望用户输入图像文件的名称,每当目录中不存在该文件时,我希望用户输入另一个文件名而不是收到如下错误消息:
FileNotFoundError: [Errno 2] No such file or directory:
事实上,在上面的代码中,在第二次错误输入后,我收到一条错误消息,异常 FileNotFoundError
,而我希望循环继续进行,直到将现有文件名作为输入给出。我在 while
循环或其余代码中做错了什么?
如果 exception
发生在 try: except:
之外,它会使您的程序崩溃。通过在 except:
之后询问新的输入,您处于捕获之外-"context":导致您的程序崩溃。
修复:
import matplotlib.pylab as plt
import os
while True:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
if img is None:
print("Problem loading image")
else:
break
except FileNotFoundError:
print('Entered image name does not exist.')
# or check img here if you allow a None image to "break" from above
if img:
# do smth with img if not None
check/handle img 也很重要 None
因为 imread()
可以 return None
如果加载图像时出现问题(文件存在/ 但已损坏...或 .txt)
这有帮助!
while Ture:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
if not img:
print("Err")
else:
break
except FileNotFoundError:
print('Entered image name does not exist.')
else:
break
在解释我的问题之前,我分享了我的代码,以便更容易直接从那里开始。
import matplotlib.pylab as plt
import os
while True:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
except FileNotFoundError:
print('Entered image name does not exist.')
img_name = input('Please enter another image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
我希望用户输入图像文件的名称,每当目录中不存在该文件时,我希望用户输入另一个文件名而不是收到如下错误消息:
FileNotFoundError: [Errno 2] No such file or directory:
事实上,在上面的代码中,在第二次错误输入后,我收到一条错误消息,异常 FileNotFoundError
,而我希望循环继续进行,直到将现有文件名作为输入给出。我在 while
循环或其余代码中做错了什么?
如果 exception
发生在 try: except:
之外,它会使您的程序崩溃。通过在 except:
之后询问新的输入,您处于捕获之外-"context":导致您的程序崩溃。
修复:
import matplotlib.pylab as plt
import os
while True:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
if img is None:
print("Problem loading image")
else:
break
except FileNotFoundError:
print('Entered image name does not exist.')
# or check img here if you allow a None image to "break" from above
if img:
# do smth with img if not None
check/handle img 也很重要 None
因为 imread()
可以 return None
如果加载图像时出现问题(文件存在/ 但已损坏...或 .txt)
这有帮助!
while Ture:
try:
img_name = input('Enter the image file name: ')
img = plt.imread(os.path.join(work_dir, 'new_images_from_web\', img_name + '.jpg'))
if not img:
print("Err")
else:
break
except FileNotFoundError:
print('Entered image name does not exist.')
else:
break