Метод readlines () читает до EOF с использованием readline () и возвращает список, содержащий строки.
Откройте файл sample.txt с помощью блокнота o из командной строки: type sample.txt
Можно использовать pathlib, который доступен в библиотеке стандарта Python 3.4 и выше.
from pathlib import Path
files = [f for f in Path.cwd().iterdir() if f.match("145592*.jpg")]
Можно определить шаблон и проверку на него. Здесь я взял и запускаю и заканчиваю шаблон и поиск их в имени файла. ФАЙЛЫ содержат список всех файлов в каталоге.
import os
PATTERN_START = "145592"
PATTERN_END = ".jpg"
CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))
for r,d,FILES in os.walk(CURRENT_DIR):
for FILE in FILES:
if PATTERN_START in FILE and PATTERN_END in FILE:
print FILE
glob.glob ()
- это определенно способ сделать это (по Игнасио). Однако, если вам нужно более сложное сопоставление, вы можете сделать это с пониманием списка и re.match ()
, что-то вроде того:
files = [f for f in os.listdir('.') if re.match(r'[0-9]+.*\.jpg', f)]
Более гибкий, но, как вы заметили, менее эффективный.
используйте os.walk для рекурсивного перечисления файлов
import os
root = "/home"
pattern = "145992"
alist_filter = ['jpg','bmp','png','gif']
path=os.path.join(root,"mydir_to_scan")
for r,d,f in os.walk(path):
for file in f:
if file[-3:] in alist_filter and pattern in file:
print os.path.join(root,file)