【问题标题】:Python with regex带有正则表达式的 Python
【发布时间】:2019-03-19 23:41:54
【问题描述】:

请帮帮我。

我有一个路径文件列表如下:

[PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/Papagaio_verdadeiro.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_amarelo.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/zoom_RACAO_ALIMENTO_NUTROPICA_PAPAGAIO_AVES_PASSAROS1.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_ok.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/alx_papagaio_20070327_01_original.jpeg')]

此列表是使用 get_image_files 创建的。

这是鹦鹉的图片列表。在巴西 papagaio = 鹦鹉。

为了在机器学习中使用文件名进行分类,我尝试使用以下正则表达式:

pat = r'.[^\/.]+.jpg$'

但是,在 ImageDataBunch 中使用它之后...

data_papagaio = ImageDataBunch.from_name_re(papagaio_path, papagaio_files, pat, ds_tfms=get_transforms(), size=224, bs=bs
                                  ).normalize(imagenet_stats)

我收到以下错误消息:

IndexError: 没有这样的组

而且我不知道如何解决它。有人可以帮我吗?

为了澄清起见,我正在尝试使用我硬盘上的一些文件重现 fast.ai 课程中的第 1 课。

【问题讨论】:

    标签: regex python-3.x list imagedata


    【解决方案1】:

    metod 正在寻找捕获组值,您需要在文件名模式周围设置一对未转义的括号。

    另外,您似乎同时拥有jpgjpeg,因此您需要jpe?g,而不仅仅是jpg

    使用

    pat = r'([^/.]+)\.jpe?g$'
    

    regex demo

    【讨论】:

    • @Angelo 很高兴它对你有用。另外,如果您觉得有帮助,请考虑点赞。
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2010-09-28
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多