如何列出目录的所有文件?

我如何在Python中列出目录中的所有文件并将它们添加到list


os.listdir()会为你提供目录中的所有内容 - 文件和目录。

如果你只需要文件,你可以使用os.path过滤掉它:

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

或者你可以使用os.walk() ,它将为它访问的每个目录产生两个列表 - 为你分割成文件和目录。 如果你只想要最上面的目录,你可以在第一次打破时打破它

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break

最后,如该例所示,将一个列表添加到另一个列表中,您可以使用.extend()

>>> q = [1, 2, 3]
>>> w = [4, 5, 6]
>>> q = q + w
>>> q
[1, 2, 3, 4, 5, 6]

就个人而言,我更喜欢.extend()


我更喜欢使用glob模块,因为它可以进行模式匹配和扩展。

import glob
print(glob.glob("/home/adam/*.txt"))

将返回一个包含查询文件的列表:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]

import os
os.listdir("somedirectory")

将返回“somedirectory”中的所有文件和目录的列表。

链接地址: http://www.djcxy.com/p/447.html

上一篇: How do I list all files of a directory?

下一篇: When to use LinkedList over ArrayList?