Python中的目录树列表

时间:2020-03-06 14:35:43  来源:igfitidea点击:

如何在Python的给定目录中获取所有文件(和目录)的列表?

解决方案

我们可以使用

os.listdir(path)

作为参考和更多的os函数,请看这里:

  • Python 2文档:https://docs.python.org/2/library/os.html#os.listdir
  • Python 3文档:https://docs.python.org/3/library/os.html#os.listdir

import os

for filename in os.listdir("C:\temp"):
    print  filename

试试这个:

import os
for top, dirs, files in os.walk('./'):
    for nm in files:       
        print os.path.join(top, nm)

这是遍历目录树中每个文件和目录的一种方式:

import os

for dirname, dirnames, filenames in os.walk('.'):
    # print path to all subdirectories first.
    for subdirname in dirnames:
        print(os.path.join(dirname, subdirname))

    # print path to all filenames.
    for filename in filenames:
        print(os.path.join(dirname, filename))

    # Advanced usage:
    # editing the 'dirnames' list will stop os.walk() from recursing into there.
    if '.git' in dirnames:
        # don't go into any .git directories.
        dirnames.remove('.git')

这是我经常使用的辅助函数:

import os

def listdir_fullpath(d):
    return [os.path.join(d, f) for f in os.listdir(d)]