Python统计指定目录下一级文件夹数量(不含文件与子文件夹)的代码异常排查
解决指定目录下文件夹数量统计的问题
嘿,我知道你为啥统计结果不对啦!你用的os.listdir(path)返回的只是目标目录里的条目名称(比如文件夹名、文件名),不是完整的路径。直接用os.path.isdir(i)的时候,它会去你的当前工作目录找这个名字,而不是你指定的path目录下,所以自然判断不出那些文件夹,结果就返回0了。
给你两种修正方案:
方案1:拼接完整路径(兼容旧Python版本)
把每个条目和目标路径拼接成完整路径,再判断是不是文件夹:
import os path = "C:/Users/[Name]/Desktop/python_testing/my_folder" # 用os.path.join拼接路径,确保跨系统兼容性 num = sum(os.path.isdir(os.path.join(path, i)) for i in os.listdir(path)) print(num)
方案2:用os.scandir更高效(Python 3.5+推荐)
os.scandir会返回带属性的DirEntry对象,直接调用is_dir()就能判断,不用额外拼接路径,效率更高:
import os path = "C:/Users/[Name]/Desktop/python_testing/my_folder" num = sum(1 for entry in os.scandir(path) if entry.is_dir()) print(num)
另外别忘了把路径里的[Name]替换成你实际的用户名哦,比如"C:/Users/John/Desktop/python_testing/my_folder",不然路径本身无效也会导致统计错误~
内容的提问来源于stack exchange,提问作者Astudent
相关产品推荐
相关产品推荐

