from os import mkdir, chdir, getcwd
from shutil import rmtree
from pathlib import Path
def mk_dirname(dir_level, _number):
"""
возвращает строку - путь к новой папке
из текущего пути и аргументов
"""
_path = getcwd()
_dirname = '_'.join([str(dir_level), str(_number)])
return '/'.join([_path, _dirname])
def mkdirs(mkdir_level, _size):
"""
создает пирамиду папок с шириной _size
на глубину mkdir_level
"""
for number in range(_size):
dirname = Path(mk_dirname(mkdir_level, number))
old_root = Path(getcwd())
mkdir(dirname)
if mkdir_level:
chdir(dirname) # ныряем в созданную папку
mkdirs(mkdir_level-1, _size) # вызываем рекурсивно функцию
chdir(old_root) # выныриваем из папки
if __name__ == '__main__':
level = 3
size = 4
root = 'my_root'
try:
rmtree(root)
except FileNotFoundError:
pass
finally:
mkdir(root)
chdir(root)
mkdirs(level, size)
from os import mkdir, chdir, getcwd
from shutil import rmtree
from pathlib import Path
def mk_dirname(_number):
"""
возвращает строку - путь к новой папке
из текущего пути и аргументов
"""
_path = getcwd()
_dirname = 'folder_' + str(_number)
return '/'.join([_path, _dirname])
def mkdirs(max_size, current_size=1):
"""
создает пирамиду папок с шириной max_size
"""
for number in range(current_size):
dirname = Path(mk_dirname(number))
old_root = Path(getcwd())
mkdir(dirname)
if current_size < max_size:
chdir(dirname) # ныряем в созданную папку
mkdirs(max_size, current_size+1) # вызываем рекурсивно функцию
chdir(old_root) # выныриваем из папки
if __name__ == '__main__':
size = 5
root = 'my_root'
try:
rmtree(root)
except FileNotFoundError:
pass
finally:
mkdir(root)
chdir(root)
mkdirs(size)
if current_size < max_size:
chdir(dirname) # ныряем в созданную папку
mkdirs(max_size, current_size+1) # вызываем рекурсивно функцию
# <<<сюда вставляем проверку и вставку файла
chdir(old_root) # выныриваем из папки