扫码关注官方订阅号
环境 OS X10.11python3.5
[x for x in os.listdir('.') if os.path.isdir(x)]这条命令中 我把path换成了我的桌面/Users/账户名/Desktop但是打印不出来任何目录都是[]
[x for x in os.listdir('.') if os.path.isdir(x)]
请问是为什么呢
人生最曼妙的风景,竟是内心的淡定与从容!
很简单
os.listdir('/Users/<user>/Desktop')
这个得到的是你桌面上所有文件夹的名字,形如['a','b','c']
['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)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
很简单
这个得到的是你桌面上所有文件夹的名字,形如
['a','b','c']然后后面的
就等效于每次都去判断那些文件夹在你当前目录下是否存在,自然就什么目录都没有了。
如果想得到期望的结果,你需要这样:
因为你的桌面上没有目录,所以那些文件都被跳过了,自然就返回1个空列表给你了。