Python: имя файла содержит строку (metachar?)
Я использую os.walk(каталог), чтобы рекурсивно показать все файлы из этого каталога. Дело в том, что мне нужно показывать только те файлы, которые содержат запрашиваемую строку в своем имени, а также управлять метачарами.
Что у меня сейчас есть:
for root, subdirs, files in os.walk(dir1):
for filename in files:
if substring in filename:
name_path = os.path.join(root,filename)
list.insert(END, name_path)
Это хорошо работает, но если substring = *
, так как у меня нет файлов, содержащих ' * ', мой список пуст.
Итак, как мне заставить это работать, если substring
содержит метачар?
1 ответ
Решение
Я думаю, что вы ищете fnmatch:
Вы можете использовать glob. Это очень удобно и похоже на команду find в Linux.
import glob
glob.glob("/home/user/*.txt")
Искать в нескольких подкаталогах
glob.glob("/home/user/*/*.txt")
или
glob.glob("/home/user/logs?.txt")