Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: 1251 -*-
- """winner v1.3 from 05.05.2015"""
- import os #модуль для проверки на файл/директорию, получения списка файлов в директории
- import re #модуль регулярных выражений - поиск по шаблону в строке
- from operator import truth #перевод результата регулярного выражения в логический тип
- def outList(str, ptrn): #функция вывода списка файлов по искомому шаблону
- if not os.path.isdir(str): #проверка если при вызове из главной программы было передано путь не ведущей к директории
- print('"' + str + '" not a directory!') #вывод ошибки
- else: #иначе - обработка директории (при рекурсивных вызовах outList аргумент str будет всегда ссылаться на директорию)
- fileList = os.listdir(str) #получить список обьектов в директории
- for item in fileList: #для всех обьектов
- if os.path.isdir(os.path.join(str, item)): #если это директория
- outList(os.path.join(str, item), ptrn) #рекурсивно обработать как директорию
- else: #иначе - обработать как файл
- f = open(os.path.join(str, item), 'r') #открыть файл на чтение
- s = f.read() #считать строку (в файлах всегда одна строка)
- if truth(re.search(ptrn, s)): #если строка из файла совпадает с искомым шаблоном ...
- print(os.path.join(str, item)) # ... то вывести путь к этому файлу
- ### MAIN PROGRAM ###
- if __name__ == "__main__":
- print ('Файл нужно импортировать в главную программу')
- else:
- path = raw_input('Set path :')
- if not os.path.isdir(path):
- print ('path dont exists!!!')
- else:#указать путь к директории - в этом случае путь задается относительно файла-скрипта
- pattern = '\w*W\wI\wN\wN\wE\wR\w*' #задается шаблон
- outList(path, pattern) #запуск функции с аргументами: путь к директории, шаблон для поиска строки в файлах
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement