Нет встроенной функции для отображения только файлов, но достаточно легко определить в нескольких строках:
def listfiles(directory):
return [f for f in os.listdir(directory)
if os.path.isdir(os.path.join(directory, f))]
EDIT: исправлено, спасибо Stephan202
Если a_directory - это каталог, который вы хотите проверить, то:
next(f1 for f in os.walk(a_directory))
Из os.walk() ссылка:
Создайте имена файлов в дереве каталогов, пробираясь по дереву сверху вниз или снизу вверх. Для каждого каталога в дереве, укорененном в верхней части каталога (включая верхний), он дает 3-кортеж (dirpath, dirnames, filenames).
Я не верю, что есть. Поскольку каталоги также являются файлами, вы должны запросить все файлы, а затем спросить их, если это каталог.
def listdirs(path):
ret = []
for cur_name in os.listdir(path):
full_path = os.path.join(path, cur_name)
if os.path.isdir(full_path):
ret.append(cur_name)
return ret
onlydirs = listdir("/tmp/")
print onlydirs
.. или как понимание списка.
path = "/tmp/"
onlydirs = [x for x in os.listdir(path) if os.path.isdir(os.path.join(path, x))]
print onlydirs