我只想列出某个文件夹中的目录。 这意味着我不希望列出文件名,也不希望列出其他子文件夹。
让我们看看一个例子是否有用。在当前目录中,我们有:
>>> os.listdir(os.getcwd())
['cx_Oracle-doc', 'DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'mod_p
ython-wininst.log', 'NEWS.txt', 'pymssql-wininst.log', 'python.exe', 'pythonw.ex
e', 'README.txt', 'Removemod_python.exe', 'Removepymssql.exe', 'Scripts', 'tcl',
'Tools', 'w9xpopen.exe']
但是,我不想列出文件名。我也不需要子文件夹,如\Lib\curses。基本上我想要的是:
>>> for root, dirnames, filenames in os.walk('.'):
... print dirnames
... break
...
['cx_Oracle-doc', 'DLLs', 'Doc', 'include', 'Lib', 'libs', 'Scripts', 'tcl', 'Tools']
但是,我想知道是否有一种更简单的方法可以达到同样的效果。我的印象是,只使用os.walk返回顶级是低效的/太多了。
使用os.path.isdir()筛选结果(并使用os.path.join()获取实际路径):
操作系统漫游
将^{} 与^{} 项函数一起使用:
对于Python<;=2.5使用:
工作原理
os.walk
是生成器,调用next
将获得3元组形式的第一个结果(dirpath、dirnames、filenames)。因此,[1]
索引只返回该元组中的dirnames
。使用os.path.isdir筛选列表以检测目录。
相关问题 更多 >
编程相关推荐