Jak mogę uzyskać nazwy folderów w katalogu za pomocą języka Python?Nazwy folderów w języku Python w katalogu
Chcę zapisać wszystkie podfoldery na liście, aby pracować z nazwami po tym, ale nie wiem, jak odczytać nazwy podfolderów?
Dzięki Ci pomóc
Jak mogę uzyskać nazwy folderów w katalogu za pomocą języka Python?Nazwy folderów w języku Python w katalogu
Chcę zapisać wszystkie podfoldery na liście, aby pracować z nazwami po tym, ale nie wiem, jak odczytać nazwy podfolderów?
Dzięki Ci pomóc
Można użyć os.walk()
# !/usr/bin/python
import os
directory_list = list()
for root, dirs, files in os.walk("/path/to/your/dir", topdown=False):
for name in dirs:
directory_list.append(os.path.join(root, name))
print directory_list
EDIT
Jeśli chcesz tylko pierwszy poziom, a nie faktycznie „spacer” Poprzez podkatalogów, to nawet mniej kodu:
import os
root, dirs, files = os.walk("/path/to/your/dir").next()
print dirs
To naprawdę nie jest to, co zostało zrobione os.walk
. Jeśli naprawdę chcą tylko jednego poziomu podkatalogów, można również użyć os.listdir()
jak Yannik Ammann zasugerował:
root='/path/to/my/dir'
dirlist = [ item for item in os.listdir(root) if os.path.isdir(os.path.join(root, item)) ]
print dirlist
Można użyć os.listdir()
here a link to the docs
Ostrzeżenie zwraca plików i katalogów
przykład:
import os
path = 'pyth/to/dir/'
dir_list = os.listdir(path)
aktualizacja: trzeba sprawdzić, czy zwrócone nazwy są katalogi lub pliki
import os
path = 'pyth/to/dir/'
# list of all content in a directory, filtered so only directories are returned
dir_list = [directory for directory in os.listdir(path) if os.path.isdir(path+directory)]
'os.listdir()' wyświetla również pliki, nie tylko katalogi. –
to robi? dlaczego byłby nazwany listdir, jeśli zwróci pliki? – yamm
Ponieważ wymienia zawartość katalogu :) –
Stosować os.walk(path)
import os
path = 'C:\\'
for root, directories, files in os.walk(path):
for directory in directories:
print os.path.join(root, directory)
proszę jak jestem w stanie wydrukować tylko 2 poziomy w dół (podkatalogi) katalogów ... – Ossama
import os path = „C: \\” dla korzenia, katalogi, pliki w os.walk (ścieżka): jeśli root.replace (ścieżka, '') .count (os.sep) <= 2: drukuj root – srekcahrai
Począwszy Pythonie 3.4, można również korzystać z nowej pathlib
moduł:
from pathlib import Path
p = Path('some/folder')
subdirectories = [x for x in p.iterdir() if x.is_dir()]
print(subdirectories)
Najpierw należy zaimportować os.
import os
files=[]
files = [f for f in sorted(os.listdir(FileDirectoryPath))]
To daje listę wszystkich plików w FileDirectoryPath klasyfikowane.
dzięki. Ale ten kod to tylko lista nazw, ale nie mogę ich zapisać w tablicy lub liście? – HightronicDesign
Oczywiście, że mogę ... Edytowałem swoją odpowiedź, więc dołącza wpisy do listy. –
ahh naprawdę fajna funkcja, wciąż jest jeden problem, otrzymuję cały czas całe drzewo wszystkich podkatalogów na ścieżce, potrzebuję tylko pierwszej struktury: C: \ MyPath iw tym folderze mam folder1, folder2, folder3 ... i potrzebuję tylko folderów1, folderów2 itd. Nazw, a nie podfolderów folderu1 ..... – HightronicDesign