Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Функция рекурсивно выводит список всех файлов в текущей директории и во всех вложенных подкаталогах.
- """
- import os
- def get_file_list(dir_path=os.getcwd()):
- file_list = []
- for file in os.listdir(dir_path): #обходит текущий каталог
- path = os.path.join(dir_path, file) #генерирует путь к найденому объекту
- if not os.path.isdir(path): #если найденый объект не папка
- file_list.append(path) #добавляет файл к результату
- else:
- file_list += get_file_list(path) #если найденый объект - папка, рекурсивно обходит ее содержимое;
- return file_list
- """
- Интерпретация системной утилиты grep. В текущем каталоге будут найдены файлы с питоновским расширением, в которых будет найдена поисковая строка 'import os'.
- """
- import fnmatch
- mask = '*.py'
- pattern = 'import os'
- def find_pattern(dir_path, mask, pattern):
- result_list = []
- for file in os.listdir(dir_path): #обходит объекты в текущем каталоге
- if fnmatch.fnmatch(file, mask): #если расширение файла совпадает с заданым
- name = os.path.join(os.getcwd() + '/' + file) #генерируем системный путь к файлу
- try:
- data = open(name, 'r').read() #читает файл
- if data.find(pattern) != -1: #если есть совпадение по заданому шаблону (pattern)
- result_list.append(name) #добавляет файл к результату;
- except:
- pass
- return result_list
- """
- Функция выводит статистическую информацию о текущем каталоге: общий размер каталога в байтах, число папок, файлов и их размеры.
- """
- def get_local_info(dir_path=os.getcwd()):
- result = [[], [], 0] #шаблон для сбора результатов
- for name in os.listdir(dir_path): #смотрим объекты в текущем каталоге
- path = os.path.join(dir_path, name)
- if not os.path.isdir(path): #если найденый объект не папка
- size = os.path.getsize(name) #фиксируем размер объекта
- result[0].append({name: size}) #доабвляем к результату
- result[2] += size
- else:
- size = os.path.getsize(name) #если объект - папка
- result[1].append({name: size})
- result[2] += size
- print( 'file list | size (bytes), count %s \n' %(len(result[0])) + '\n'.join(str(value) for value in result[0]) + '\n\n' + 'folder list | size (bytes), count %s \n' %(len(result[1])) + '\n'.join(str(value) for value in result[1]) + '\n\n' + 'total size: %s bytes' % result[2] + '\n') #выводим на экран форматированные результаты
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement