获取具有完整路径的子目录中的文件列表

时间:2017-11-03 17:57:00

标签: python

我有一个这样的目录:

Main Directory
 - Subdirectory
    - subfile1
    - subfile2
 - file1
 - file2

当我做清单时。我看到的输出如下:

arr=os.listdir(.)
-Subdirectory1, file1, File2

如何获得输出:

./file1
./file2
.subdirectory1/subfile1 
.subdirectory1/subfile2.

基本上我也在目录中寻找文件名。我也在寻找完整的路径。

如果有任何我可以使用的功能,请告诉我吗?

3 个答案:

答案 0 :(得分:1)

查看os.walk

这会产生类似示例的输出。当前目录.用作示例:

for path, dirs, files in os.walk('.'):
    for file in files:
        print(os.path.join(path,file))

如果你想要绝对路径(在Linux上以/开头或在Windows上以\开头),请以绝对路径名开头。

答案 1 :(得分:0)

您可以使用以下代码获取MainDirectory中所有文件的列表:

import sys,os

MainDirectory = "/tmp/"

filesList = list()
for path, subdirs, files in os.walk(MainDirectory):
    for name in files:
        filesList.append(os.path.join(path, name))

然后filesList列表包含该目录及其子目录中的所有文件。

答案 2 :(得分:0)

使用Python> = 3.4,您可以执行以下操作:

>>> from pathlib import Path
>>> for item in Path('c:/scratch').glob('**/*'):
...     str(item.absolute())

...而且pathlib也提供了更多好东西。