Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Вопрос про python получить список каталогов в каталоге

  1. Вопрос про python получить список каталогов в каталоге

    Всем привет! Есть такая задачка: нужно c помощью python получить список каталогов в каталоге. Короче, нужно пробежать по главной папке и вытащить только те, что каталоги, а файлы пропустить. Кто знает, как это можно реализовать на питоне? Ребят, реально нужно, уже мозг кипит. Спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Мы делали совсем недавно такой скрипт, использовали модуль os. Вот рабочий пример:

    Программный код:
    import os
      
    def get_directories
    (path):
        
        return [
    name for name in os.listdir(path) if os.path.isdir(os.path.join(pathname))]
      
    путь '/твой/путь/к/каталогу'
    каталоги get_directories(путь)
    print(
    каталоги
    В этом скрипте os.listdir() вытаскивает все имена внутри каталога, а os.path.isdir() уже проверяет, каталог это или нет. Надеюсь, поможет!

  4. Цитата Сообщение от Ива
    Привет! Мы делали совсем недавно такой скрипт, использовали модуль os. Вот рабочий пример:

    Программный код:
    import os
      
    def get_directories
    (path):
        
        return [
    name for name in os.listdir(path) if os.path.isdir(os.path.join(pathname))]
      
    путь '/твой/путь/к/каталогу'
    каталоги get_directories(путь)
    print(
    каталоги
    В этом скрипте os.listdir() вытаскивает все имена внутри каталога, а os.path.isdir() уже проверяет, каталог это или нет. Надеюсь, поможет!
    Ос, друг! Крутяк, это точно сработает, а благодаря ос.path.join() вроде бы даже для всех файловых систем подойдёт!

  5. Пробовал вариант через pathlib? Вот пример:

    Программный код:
    from pathlib import Path
      
    путь 
    Path('/твой/путь/к/каталогу')
      
    каталоги = [for p in путь.iterdir() if p.is_dir()]
      
    for 
    каталог in каталоги:
        print(
    каталог
    Это путь нового стиля, удобный и понятный!

  6. Цитата Сообщение от BoomBoom
    Пробовал вариант через pathlib? Вот пример:

    Программный код:
    from pathlib import Path
      
    путь 
    Path('/твой/путь/к/каталогу')
      
    каталоги = [for p in путь.iterdir() if p.is_dir()]
      
    for 
    каталог in каталоги:
        print(
    каталог
    Это путь нового стиля, удобный и понятный!
    Хм, pathlib тоже тема, новые возможности радуют. Пробовал, кажется, быстрее работает чем os.

  7. Добавлю еще один способ для коллекции. Используем scandir():

    Программный код:
    import os
      
    def get_directories_scandir
    (path):
         
        
    with os.scandir(path) as it:
             
            return [
    entry.name for entry in it if entry.is_dir()]
      
    путь '/твой/путь/к/каталогу'
    каталоги get_directories_scandir(путь)
    print(
    каталоги
    Работает довольно шустро!

  8. Цитата Сообщение от Барон
    Добавлю еще один способ для коллекции. Используем scandir():

    Программный код:
    import os
      
    def get_directories_scandir
    (path):
         
        
    with os.scandir(path) as it:
             
            return [
    entry.name for entry in it if entry.is_dir()]
      
    путь '/твой/путь/к/каталогу'
    каталоги get_directories_scandir(путь)
    print(
    каталоги
    Работает довольно шустро!
    Ну эта фишка с scandir как-то по-трейдовому звучит! Надо будет тоже чекнуть!

  9. Если тебе нужно еще и рекурсивно пройтись по всем подкаталогам, используй os.walk():

    Программный код:
    import os
      
    def get_directories_walk
    (path):
        
        
    directories = []
        
        for 
    dirpathdirnamesfilenames in os.walk(path):
            
            
    directories.extend(dirnames)
        return 
    directories
      
    путь 
    '/твоя/папка'
    каталоги get_directories_walk(путь)
    print(
    каталоги
    os.walk() очень мощный инструмент, особенно если нужно не просто пройтись по верхнему уровню, а копать глубже.

  10. Цитата Сообщение от Джульетта
    Если тебе нужно еще и рекурсивно пройтись по всем подкаталогам, используй os.walk():

    Программный код:
    import os
      
    def get_directories_walk
    (path):
        
        
    directories = []
        
        for 
    dirpathdirnamesfilenames in os.walk(path):
            
            
    directories.extend(dirnames)
        return 
    directories
      
    путь 
    '/твоя/папка'
    каталоги get_directories_walk(путь)
    print(
    каталоги
    os.walk() очень мощный инструмент, особенно если нужно не просто пройтись по верхнему уровню, а копать глубже.
    Чувак, ос.walk это вообще монстр, правда мощный! Я его в проектах юзаю.

Страница 1 из 2 12 ПоследняяПоследняя