在 Python 中列出目录和子目录中的所有文件
-
在 Python 中使用
os.walk()
来列出目录和子目录中的所有文件 -
在 Python 中使用
listdir()
列出目录和子目录中的所有文件 -
在 Python 中使用
glob
列出目录和子目录中的所有文件
Python 提供了许多方法来访问目录和子目录中的文件列表。本指南将介绍 os.walk()
、listdir()
和 glob
。
在 Python 中使用 os.walk()
来列出目录和子目录中的所有文件
Python 中的 os
模块提供了一种与操作系统交互的方法。它有许多处理文件系统的内置函数。
我们可以使用这个模块获取、创建、删除和更改目录。walk()
是一种递归方法,它通过自上而下或自下而上的方式在目录树中生成文件名。
在下面的代码中,我们显示了目录和 MyFolder
的子目录中的文件。在我们的例子中,这个文件夹位于 Python 环境的主目录中。
示例代码:
import os
root = "MyFolder"
for path, subdirs, files in os.walk(root):
for name in files:
print(os.path.join(path, name))
输出:
MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
在 Python 中使用 listdir()
列出目录和子目录中的所有文件
在下面的代码中,我们遍历目录树并访问它的文件和子文件,而不使用 walk
方法。我们已将根文件夹 MyFolder
指定为起点。
然后我们使用 listdir()
访问该文件夹的目录和子目录并将它们存储在项目中。我们将项目名称与之前的路径连接起来,并使用 isdir()
方法检查它是否是目录。
如果是这样,我们将进一步搜索该目录并应用相同的过程。如果文件名是文件名,我们已将文件名附加到上一个路径并显示它们。
示例代码:
import os
root = "MyFolder"
files = []
walk = [root]
while walk:
folder = walk.pop(0) + "/"
items = os.listdir(folder) # items = folders + files
for i in items:
i = folder + i
(walk if os.path.isdir(i) else files).append(i)
print(files)
输出:
['MyFolder/text_file1.txt', 'MyFolder/text_file2.txt', 'MyFolder/SubFolder1/text_file3.txt', 'MyFolder/SubFolder1/text_file4.txt']
在 Python 中使用 glob
列出目录和子目录中的所有文件
glob
是 Python 中的一个内置模块,代表 global
。此模块返回名称和扩展名与特定模式匹配的所有文件路径。
这里我们使用了*.*
,它表示任何具有任何扩展名的文件名。我们使用 glob.glob()
在目录或子目录中递归查找文件。
如果 recursive 设置为 True
,则模式 **
将匹配任何文件以及零个或多个文件夹和子目录。
示例代码:
import glob
path = "MyFolder\**\*.*"
for file in glob.glob(path, recursive=True):
print(file)
输出:
MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn