Advertisement
ShinkaiShoujo

Untitled

Apr 1st, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import os
  2. import sys
  3. import itertools
  4.  
  5. def get_extension(filename):
  6.     """ Вернуть расширение файла """
  7.     return os.path.splitext(filename)[1]
  8.  
  9.  
  10. def is_right_ext(extensions):
  11.    
  12.     def function(filenames):
  13.         ext = get_extension(filename)
  14.         return ext in extensions
  15.     return function
  16.  
  17.  
  18. def with_extensions(extensions, filenames):
  19.     """
  20.    Оставить из итератора ``filenames`` только
  21.    имена файлов, у которых расширение - одно из ``extensions``.    
  22.    """
  23.     ext = get_extension()
  24.     filter(is_right_ext(extensions),filenames)
  25.  
  26.  
  27. def project_stats(path, extensions):
  28.     """
  29.    Вернуть число строк в исходниках проекта.
  30.    
  31.    Файлами, входящими в проект, считаются все файлы
  32.    в папке ``path`` (и подпапках), имеющие расширение
  33.    из множества ``extensions``.
  34.    """
  35.     pass
  36.  
  37.  
  38. def total_number_of_lines(filenames):
  39.     """
  40.    Вернуть общее число строк в файлах ``filenames``.
  41.    """
  42.     pass
  43.    
  44.  
  45. def number_of_lines(filename):
  46.     """
  47.    Вернуть число строк в файле.
  48.    """
  49.     pass
  50.            
  51.  
  52. def iter_filenames(path):
  53.     """
  54.    Итератор по именам файлов в дереве.
  55.    """
  56.     pass
  57.            
  58.  
  59.  
  60.  
  61. def print_usage():
  62.     print("Usage: python project_sourse_stats_3.py <project_path>")
  63.  
  64.  
  65. if __name__ == '__main__':
  66.     if len(sys.argv) != 2:
  67.         print_usage()
  68.         sys.exit(1)
  69.        
  70.     project_path = sys.argv[1]
  71.     print(project_stats(project_path, {'.cs'}))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement