处理 Python 中的异常

Handle Exception in Python

代码:

genders=[]
      for image in os.listdir('Face'):
        try:
          gender = int(image.split('_')[1])
        except ValueError:
          pass
      genders.append(gender)

正在尝试在列表中添加字符串的 int 值。 提高价值错误

ValueError: invalid literal for int() with base 10: ''

我想捕获该错误并删除该文件。并继续循环。

所以我想添加这些 int 值以列出和删除循环无法将字符串转换为 int 的文件

抱歉我的英语不好。

使用 continue 语句将允许您继续迭代。

genders=[]
for image in os.listdir('Face'):
   try:
       gender = int(image.split('_')[1])
   except ValueError:
       continue
   genders.append(gender)

gender 只在 try 子句中定义,所以你不能将它追加到 genders,你也不需要(因为你想删除文件),所以这一行也应该在 try 子句中:

genders=[]
for image in os.listdir('Face'):
    try:
        gender = int(image.split('_')[1])
        genders.append(gender)
    except ValueError:
        # delete file
        os.remove(image)

也许对代码稍作改动就可以了

genders=[]
    for image in os.listdir('Face'):
        try:
            gender = int(image.split('_')[1])
            genders.append(gender)
        except ValueError:
            pass
  
import os
genders=[]
for image in os.listdir('Face'):
  try:
    genders.append(int(image.split('_')[1]))
  except (ValueError, IndexError):
    try:
      os.remove(image)
    except OSError:
      pass