Ответ 1
import os.path
dirs = [d for d in os.listdir('Tools') if os.path.isdir(os.path.join('Tools', d))]
Я использую этот код для получения всех файлов в данной папке. Есть ли способ получить только папки?
a = os.listdir('Tools')
import os.path
dirs = [d for d in os.listdir('Tools') if os.path.isdir(os.path.join('Tools', d))]
Чтобы распечатать только папки
print os.walk(DIR_PATH).next()[1]
Чтобы распечатать только файлы
print os.walk(DIR_PATH).next()[2]
Другой метод:
dirs = [entry.path for entry in os.scandir('Tools') if entry.is_dir()]
import os
def ld(val):
return next(os.walk(val))[1] # Thank you @eryksun
for fold in ld('/'):
print(fold)
Используйте os.walk(DIR_PATH).next()[1]
. Примечание. os.walk(DIR_PATH).next()
создает кортеж длиной 3, где
os.walk(DIR_PATH).next()[0]
является DIR_PATH
os.walk(DIR_PATH).next()[1]
- это список всех папок в DIR_PATH
os.walk(DIR_PATH).next()[2]
- это список всех файлов в DIR_PATH
.