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


当前回答

简单的方法:

list_output_files = [os.getcwd()+"\\"+f for f in os.listdir(os.getcwd())]

其他回答

你可以使用

os.listdir(path)

参考和更多的操作系统函数看这里:

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

下面是一行python版本:

import os
dir = 'given_directory_name'
filenames = [os.path.join(os.path.dirname(os.path.abspath(__file__)),dir,i) for i in os.listdir(dir)]

这段代码列出给定目录名中所有文件和目录的完整路径。

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

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')

我知道这是一个老问题。如果你在linux机器上,这是我遇到的一种简洁的方法。

import subprocess
print(subprocess.check_output(["ls", "/"]).decode("utf8"))

下面是我经常使用的一个辅助函数:

import os

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