remove crc table from master branch
[findit] / src / searchfile.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4 # pylint: disable-msg=C0301
5
6 class SearchFile(object):
7
8     def __init__(self, vvod, config):
9         self.path, self.count = vvod
10         if not self.path:
11             self.path = config.get("default_start_dir")
12         if not self.count:
13             self.count = config.get("default_count")
14
15         from resultlist import ResultList
16         self.result = ResultList()
17
18     def filesorter(self, dir):
19         import os
20         # Проходим по всем папкам вглубь от заданного пути
21         for dirpath, dirname, names in os.walk(dir):
22             for name in names:
23                 flpath = os.path.join(dirpath, name)
24                 # Возвращаем размер и полный путь файла
25                 yield (os.path.getsize(flpath), flpath)
26
27     def run(self):
28         import heapq
29         for fsize, fpath in heapq.nlargest(self.count, self.filesorter(self.path)):
30             self.result.add((fpath, fsize))
31         return self.result