如何列出目录的所有文件?
我如何在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