列出Python目录中的所有文件2025年1月5日 | 阅读 7 分钟 什么是目录?目录可以被称作包含文件和子目录的文件夹,位于系统本地文件或文件夹中。我们可以使用 Python 提供的不同函数来列出目录中存在的所有文件。 在 Python 中有多种获取目录中所有文件的方法。Python 编程语言提供了多个模块和函数来查找目录中的所有文件和文件夹。这包括:
每个模块都提供了不同的函数来列出目录中的文件和文件夹。 让我们详细了解这些方法 1. 使用 OS 模块Python 中的 OS 模块通过不同的函数帮助与操作系统进行交互。它提供了一种与操作系统交互的方式。OS 模块下有许多用于与系统交互的函数。 在安装之前,我们需要导入 OS 库 import os 我们将学习用于列出目录中文件和文件夹的函数和方法。它们是:
os.listdir( )此方法用于获取目录中所有文件和文件夹的列表。它返回目录中文件和文件夹名称的列表。即使文件中有任何特殊字符,如 ',' 或 '…',它也不会返回任何特殊条目。 os.listdir( ) 的语法 其中
以下是使用 os.listdir( ) 列出目录中文件的几个示例: 示例 1 输出 Files present in the directory: ['Chanchal', 'codes', 'helloo.py', 'javatpoint pro.docx', 'sketchpy.py', 'ss1.png', 'ss10.png', 'ss12.png', 'ss2.png', 'ss3.png', 'ss4.png', 'ss5.png', 'ss6.png', 'SS7.png', 'ss8.png'] 示例 2 查找没有文件夹的文件程序。 输出 Enter the path of the directory: D:\\files helloo.py javatpoint pro.docx sketchpy.py ss1.png ss10.png ss12.png ss2.png ss3.png ss4.png ss5.png ss6.png SS7.png ss8.png 在这里,我们使用了 os.listdir( ) 函数来列出 Python 目录中的文件。我们从用户那里获取目录路径输入,然后使用 for 循环从列表中删除文件夹并打印文件名。 示例 3 仅打印目录中 .txt 文件的程序。 输出 Enter the path of the directory: D:\\files cn.txt pp.txt song.txt os.walk( )os.walk( ) 函数是 os 模块的一个子模块,用于以字典形式获取文件名。此函数以树形结构返回文件列表。os.walk( ) 函数中使用自顶向下和自底向上两种方法遍历数据。 os.walk( ) 的语法 其中
以下是使用 os.walk( ) 函数列出目录中所有文件和文件夹的实现。 输出 The files in the directory are: cn.txt pp.txt song.txt text.txt text1.txt text2.txt 此处使用 OS 模块的 os.walk( ) 函数从给定路径列出所有 .txt 文件。 os.scandir( )scandir( ) 函数是 os 模块中的一个方法,它是一个目录迭代器函数,返回 DirEntry 对象,包括文件类型、文件名以及文件的相应信息。它类似于 os.listdir( ) 函数,但不只返回文件名列表。它通过提高速度来帮助增强 os.walk( ) 函数的性能。scandir( ) 用于 Python 3.5 及以上版本。但此方法对于较大的目录不太有用。 os.scandir( ) 的语法 其中
现在,我们将实现 os.scandir( ) 方法来获取目录中的所有文件和文件夹。 输出 Files and Folders present in the directory: <DirEntry 'app.kv'> <DirEntry 'Chanchal'> <DirEntry 'cn.txt'> <DirEntry 'codes'> <DirEntry 'helloo.py'> <DirEntry 'javatpoint pro.docx'> <DirEntry 'pp.txt'> <DirEntry 'sketchpy.py'> <DirEntry 'song.txt'> <DirEntry 'ss1.png'> <DirEntry 'ss10.png'> <DirEntry 'ss12.png'> <DirEntry 'ss2.png'> <DirEntry 'ss3.png'> <DirEntry 'ss4.png'> <DirEntry 'ss5.png'> <DirEntry 'ss6.png'> <DirEntry 'SS7.png'> <DirEntry 'ss8.png'> 我们使用 os.scandir( ) 方法列出了目录中的所有文件和文件夹。它不只返回文件名,而是返回目录中存在的文件的目录条目(DirEntry)。 2. 使用 Glob 模块glob 是 Python 中的一个库,用于使用不同的模式获取目录中存在的文件名。它使用标准的 Unix 路径扩展规则的模式规则。为了方便搜索,我们还可以使用通配符,如 '*'、'?'、[range],而不是使用精确字符串来搜索文件。这是在目录中搜索文件和文件夹的更快方法。它还可以在搜索中添加正则表达式。 在实现之前,我们需要导入 glob 库 import glob glob 模块提供了不同的函数来从目录中搜索文件和文件夹。
glob( ) 方法glob 模块的 glob( ) 方法用于使用通配符(\*、?、[ranges])从目录中提取文件和文件夹。 glob( ) 方法的语法 其中
让我们在 Python 中实现 glob( ) 方法。 输出 D:\files\app.kv D:\files\Chanchal D:\files\cn.txt D:\files\codes D:\files\helloo.py D:\files\javatpoint pro.docx D:\files\pp.txt D:\files\sketchpy.py D:\files\song.txt D:\files\ss1.png D:\files\ss10.png D:\files\ss12.png D:\files\ss2.png D:\files\ss3.png D:\files\ss4.png D:\files\ss5.png D:\files\ss6.png D:\files\SS7.png D:\files\ss8.png 这里,glob( ) 函数用于列出目录中的文件。可以使用行分隔符(\*\*/\*)来搜索特定目录中的所有文件。可以使用通配符搜索任何文件。例如,/\*txt 用于获取文本文件,/\*csv 用于获取 csv 文件。可以使用范围通配符 [0-9] 来获取目录中的前 10 个文件。 isglob( ) 方法如果 recursive 参数为 True,则此方法用于递归获取文件名。 iglob( ) 方法的语法 其中
现在,我们将实现 iglob( ) 函数来获取所有文件名。 输出 D:\$RECYCLE.BIN D:\aa.py D:\Adenoviruses_Dataset.csv D:\aho.py D:\app.py D:\apple.svg D:\Application.kv D:\bar.svg D:\bar2.svg D:\bar3.svg D:\blow.py D:\box1.kv D:\box2.kv D:\box3.kv D:\cl.py D:\cl2.py D:\clock.kv D:\clock.py D:\drawing.kv D:\drawing.py D:\files D:\flower.jpeg D:\flower_photos D:\fruit.py D:\GRAPH.png D:\graph.py D:\GRAPH.svg D:\hello.py D:\kivy app.py D:\kivy_venv D:\kiwi.py D:\line.svg D:\Local Disk (C) - Shortcut.lnk D:\main.kv D:\main.py D:\MainWidget.kv D:\Main_kv.kv D:\Main_kv.py D:\Mall_Customers.csv D:\ppp.py D:\Sarcasm.csv D:\spaceship_titanic.csv D:\supermarket_sales.csv D:\System Volume Information D:\Untitled-1.py D:\Untitled-2.kv 我们使用 iglob( ) 方法来查找目录中的文件。recursive 参数设置为 False。如果设置为 True,iglob( ) 方法将搜索路径中存在的每个文件夹和目录中的文件。 3. 使用 Pathlib 模块Pathlib 是 Python 中的一个模块,用于处理和操作文件和文件夹,以及从目录中查找文件。 pathlib 的语法 在实现之前,我们必须导入 pathlib 库。 现在,我们将实现 pathlib 模块来搜索特定目录中的文件。 输出 D:aa.py D:Adenoviruses_Dataset.csv D:aho.py D:app.py D:apple.svg D:Application.kv D:bar.svg D:bar2.svg D:bar3.svg D:blow.py D:box1.kv D:box2.kv D:box3.kv D:cl.py D:cl2.py D:clock.kv D:clock.py D:drawing.kv D:drawing.py D:flower.jpeg D:fruit.py D:GRAPH.png D:graph.py D:GRAPH.svg D:hello.py D:kivy app.py D:kiwi.py D:line.svg D:Local Disk (C) - Shortcut.lnk D:main.kv D:main.py D:MainWidget.kv D:Main_kv.kv D:Main_kv.py D:Mall_Customers.csv D:ppp.py D:Sarcasm.csv D:spaceship_titanic.csv D:supermarket_sales.csv D:Untitled-1.py D:Untitled-2.kv 使用 pathlib( ) 函数,我们搜索目录中的所有文件。 |
我们请求您订阅我们的新闻通讯以获取最新更新。