使用python来搜索一个目录下的所有目录问题

环境 OS X10.11
python3.5

[x for x in os.listdir('.') if os.path.isdir(x)]
这条命令中 我把path换成了我的桌面
/Users/账户名/Desktop
但是打印不出来任何目录
都是[]

请问是为什么呢

阅读 3.4k
3 个回答

很简单

os.listdir('/Users/<user>/Desktop')

这个得到的是你桌面上所有文件夹的名字,形如['a','b','c']

然后后面的

os.path.isdir(x)

就等效于每次都去判断那些文件夹在你当前目录下是否存在,自然就什么目录都没有了。

如果想得到期望的结果,你需要这样:

[x for x in os.listdir('/Users/<user>/Desktop') if os.path.isdir('/Users/<user>/Desktop'+x)]

因为你的桌面上没有目录,所以那些文件都被跳过了,自然就返回1个空列表给你了。

import os
f = []
for (dirpath, dirnames, filenames) in os.walk('.'):
   f.extend(dirnames)
   break
 
print(f)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题