======Задачи======
====Создать дерево каталогов:====
Решение 1
import os, sys
from stat import *
def walkTree(top, indent = ''):
"""
Вывод дерева папки
:param top путь к папке
:type pathname: str
:param indent отступ
:type indent str
"""
indent += '-'
for f in os.listdir(top):
pathname = os.path.join(top, f)
mode = os.stat(pathname).st_mode
if S_ISDIR(mode):
# It's a directory, recurse into it
print(indent + os.path.basename(pathname) + ' d')
walkTree(pathname, indent)
elif S_ISREG(mode):
# It's a file, call the callback function
print(indent + os.path.basename(pathname) + ' f')
else:
# Unknown file type, print a message
print('Skipping %s' % pathname)
Решение 2
import os, sys
def walkTreeGenerator(pathname):
"""
Вывод дерева папки
:param pathname путь к папке
:type pathname: str
"""
for root, dirs, files in os.walk(pathname):
level = root.count(os.sep)
indent = ' ' * 4 * level
sub_indent = ' ' * 4 * (level + 1)
print(f'{indent} [{os.path.basename(root)}]')
for file in files:
print(f'{sub_indent} {os.path.basename(file)}')