OSError:无法打开资源时如何跳过

时间:2019-04-11 20:27:54

标签: python jupyter-notebook

如何避免OSError:如果没有文件,则无法打开资源,但是下次它将打开一个资源。

    trend_ext = r"C:\Users\Angel ONC\Desktop\mapas-delitos-master\Series\Baja California\Ext.png"
    trend_fem = r"Series\Baja California\Fem.png"
    trend_homculp = r"Series\Baja California\Hcul.png"
    trend_homdol = r"Series\Baja California\Hdol.png"
    trend_narco = r"Series\Baja California\Nar.png"


    Mapa_ext = r"Mapas\Baja California\Ext.png"
    Mapa_fem = r"Mapas\Baja California\Fem.png"
    Mapa_homculp = r"Mapas\Baja California\Hcul.png"
    Mapa_homdol = r"Mapas\Baja California\Hdol.png"
    Mapa_narco = r"Mapas\Baja California\Nar.png"
    Mapa_robcas = r"Mapas\Baja California\Cas.png"


    doc = SimpleDocTemplate("Reportes\Baja California.pdf",pagesize=letter,
                            rightMargin=72,leftMargin=72,
                            topMargin=72,bottomMargin=18)
    Story=[]

        try:
            im_Mapa_fem = Image(Mapa_fem, 6*inch, 4*inch)
            Story.append(im_Mapa_fem)
            im_trend_fem = Image(trend_fem, 6*inch, 4*inch)
            Story.append(im_trend_fem)

        except:
            pass
try:
    im_Mapa_ext = Image(Mapa_ext, 6*inch, 4*inch)
    Story.append(im_Mapa_ext)
    im_trend_ext = Image(trend_ext, 6*inch, 4*inch)
    Story.append(im_trend_ext)

except:
    pass


try:
    im_Mapa_secuestro = Image(Mapa_secuestro, 6*inch, 4*inch)
    Story.append(im_Mapa_secuestro)
    im_trend_secuestro = Image(trend_secuestro, 6*inch, 4*inch)
    Story.append(im_trend_secuestro)

except:
    pass

OSError:无法打开资源“ Mapas \ Baja California \ Fem.png”

找不到文件时,我需要找到解决方案。

1 个答案:

答案 0 :(得分:0)

尝试如下重写try-execpt块:

#Package for iterating through directories
import glob as glob 

directory = r'Mapas\Baja California\*.png'
try:

    for files in glob.glob(directory):

        im_Mapa_fem = file

        im_Mapa_fem = Image(Mapa_fem, 6*inch, 4*inch)
        Story.append(im_Mapa_fem)
        im_trend_fem = Image(trend_fem, 6*inch, 4*inch)
        Story.append(im_trend_fem)

except Exception as e:
        print(e)
        continue

使用continue时,如果满足条件,Python将忽略for循环的一部分,但会继续完成循环的其余部分。但是,使用pass时,Python会忽略该条件,并照常继续执行for循环。

因此,如果要捕获异常然后移至下一个迭代,则应使用continue而不是pass。

由于您未包含MCVE,因此此方法可能无法正常工作,但这应该是常规方法。

也永远不要使用空块除外。您应该始终捕获该异常,并对其进行处理以用于将来的调试目的。