我正在使用这段代码获取给定文件夹中的所有文件。是否有一种方法只获取文件夹?
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()]
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
中所有文件的列表import os
def ld(val):
return next(os.walk(val))[1] # Thank you @eryksun
for fold in ld('/'):
print(fold)
Python 3 的简单示例,用于获取文件和文件夹的分离。
from os.path import isdir, isfile
from os import listdir
path = "./"
# get only folders
folders = list(filter(lambda x: isdir(f"{path}\\{x}"), listdir(path)))
# get only files
files = list(filter(lambda x: isfile(f"{path}\\{x}"), listdir(path)))
next(os.walk('Tools'))[1]
。 - Eryk Sun