在Python中的特定路径中列出目录

时间:2015-02-03 23:59:57

标签: python python-2.7

当我尝试在dirPath变量中设置路径时,下面的命令给出一个空的[]。但是,只有当我在python解释器中通过更改为dirPath指定的目录来运行它时,它才有效。这里有什么问题?我希望这一行能从任何目录中提供正确的输出。

print [os.path.abspath(name) for name in os.listdir(dirPath) if os.path.isdir(name)]           

3 个答案:

答案 0 :(得分:1)

除非您当前的工作目录(cwd)等于dirPath,否则您的代码将无法按预期运行。

os.listdir(dirPath)返回文件夹名称列表(NOT路径!)。

os.path.abspath(name)基本上会返回"cwd\name"

您想要的是os.path.abspath( os.path.join( dirPath, name ) ),即"dirPath\name"

因此,要获得您需要的路径列表:

path_list =  [path for path in (os.path.abspath( os.path.join( dirPath, name ) ) for name in os.listdir(dirPath)) if os.path.isdir(path)]

(请注意,我不太确定这是否适用于python 2.7,因为我只有p3来测试它。)

答案 1 :(得分:0)

试试这段代码:

[x[0] for x in os.walk(directory)]

或者你可以使用

os.listdir(path)

也是。

答案 2 :(得分:0)

我尝试了下面的内容,它正确地列出了名称。绝对路径使用有问题。如果有人能够弄清楚这个问题会很棒。截至目前,我正在使用目录名称并连接以获得完整的绝对路径!

>>> for name in os.listdir("/home/clonedir"):
...     print(name)
... 
directory1
directory2
>>> 
相关问题