2014-10-02 291 views
0

我想列出在Mac OS 10.8.2中使用python的目录的所有文件夹。Python操作系统listdir在Mac中无法正常工作

我的代码是如此简单:

#!/usr/bin/env python 
#coding: utf8 
import os 
print [name for name in os.listdir(os.path.abspath('.')) if os.path.isdir(name)] 

当我运行在有文件夹的结果是路径此脚本:

[] 

我尝试在同一个脚本中的另一台计算机(Ubuntu的),它完美的工作,列出当前路径中的所有目录。


我已经在这条道路蟒蛇控制台试图完全相同,它的工作原理,其结果是:

['Final', 'Script_actualizacion', 'Z_L1'] 

可能是什么回事?

+1

'os.path.abspath('。')''的结果值是什么? – 2014-10-02 07:58:21

+1

尝试用''/ Users''替换'os.path.abspath('。')',它是否工作? – RaphDG 2014-10-02 08:03:04

+0

@Tichodroma:结果值是:'/ Users/jesusredondogarcia/Desktop/Abril/subidos a opendata/Autobuses/Autobuses v2 nueva contrata/Archivos/ttls'这是脚本运行的路径,没关系。 – Jesus 2014-10-02 09:04:49

回答

0

现在好了,这是工作:发生

#!/usr/bin/env python 
#coding: utf8 
import os 
path = os.path.abspath('.') 
print [name for name in os.listdir(path) if os.path.isdir(os.path.join(path,name))] 

的问题,因为我是从不同的位置调用蟒蛇所以它在错误的道路检查迪尔斯。

+1

最好使用'os.path.join(path,name)'而不是'path +'/'+ name'。 – isedev 2014-10-02 09:27:13

+0

@isedev是的,当然更好。固定。 – Jesus 2014-10-02 10:05:08