как искать строку в listdir в любом варианте - PullRequest
0 голосов
/ 10 мая 2019

Я хочу понять, как искать имена файлов независимо от уровня или вариации. Похоже, что метод listdir принимает только точное имя.

Например:

путь к файлу: C: \ user \ files \ Hello file

это работает

  • поиск строки 'Hello' вернет C: \ user \ files \ Hello file

это не

  • поиск строки «HELLO» или любого другого варианта (заглавными буквами) ничего не вернуть

Есть ли способ обойти это?

1 Ответ

1 голос
/ 10 мая 2019

Вы можете использовать re как,

>>> import os
>>> os.listdir('.') # listing the files for demonstration
['hello', 'foo.zip', 'Hello']
>>> import re, glob
# search for file ending with `hello`,
>>> [f for f in os.listdir('.') if re.search('hello$', f, flags=re.IGNORECASE)]
['hello', 'Hello']
...