Инструменты пользователя

Инструменты сайта


python:moduli:os

Задачи

Создать дерево каталогов:

Решение 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)}')
python/moduli/os.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)