very big Bad commit :) - adding old created files
[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, result):
9         self.path, self.count = vvod.get_st_par()
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         self.result = result
15
16     def filesorter(self, dir):
17         import os
18         # Проходим по всем папкам вглубь от заданного пути
19         for dirpath, dirname, names in os.walk(dir):
20             for name in names:
21                 flpath = os.path.join(dirpath, name)
22                 # Возвращаем размер и полный путь файла
23                 yield (os.path.getsize(flpath), flpath)
24
25     def run(self):
26         import heapq
27         for fsize, fpath in heapq.nlargest(self.count, self.filesorter(self.path)):
28             self.result.add((fpath, fsize))