在 Python 中遍历目录中的文件

Muhammad Waiz Khan 2023年1月30日 2021年2月7日
  1. 在 Python 中使用 os.listdir() 方法遍历目录中的文件
  2. 在 Python 中使用 pathlib.path().glob() 方法遍历目录中的文件
  3. 在 Python 中使用 os.walk() 方法遍历目录中的文件
  4. 在 Python 中使用 iglob() 方法遍历目录中的文件
在 Python 中遍历目录中的文件

本教程将讲解在 Python 中遍历目录中的文件的不同方法。我们需要在目录中寻找一个文件来实现文件共享、文件查看或文件加载等功能,以对保存在其中的数据执行一些操作。

假设我们有一个文件名,需要从这个文件中读取数据,我们需要一些方法来遍历目录中的文件,以找到我们需要的文件。下面解释了 Python 中用于遍历目录中的文件的各种方法。

在 Python 中使用 os.listdir() 方法遍历目录中的文件

os 模块的 listdir() 方法将目录路径作为输入,并返回该目录中所有文件的列表。由于我们要找到该目录中的具体文件,所以我们要通过文件名的循环来找到所需的文件。下面的代码示例演示了如何使用 Python 中的 listdir() 方法,通过迭代找到一个特定的文件。

import os
files = os.listdir("Desktop/myFolder")
myfile = 'filename.txt'

for filename in files:
    if filename == myfile:
        continue

在 Python 中使用 pathlib.path().glob() 方法遍历目录中的文件

pathlib 模块的 path() 方法将目录路径字符串作为输入,并返回该目录和子目录中所有文件的路径列表。

假设我们要查找的文件是 .txt 文件,我们可以通过 path().glob() 方法得到所有 .txt 文件的路径。下面的代码示例演示了如何使用 Python 中的 path 方法遍历一个目录中所有的 .txt 文件。

from pathlib import Path

pathlist = Path("Desktop/myFolder").glob('**/*.txt')
myfile = 'filename.txt'
for path in pathlist:
    if path.name == myfile:
        continue

模式**/*.txt 返回当前文件夹及其子文件夹中所有扩展名为 txt 的文件。path.name 只返回文件名而不是完整的路径。

在 Python 中使用 os.walk() 方法遍历目录中的文件

os 模块的 walk() 方法也是将目录路径字符串作为输入,并将根目录的路径作为字符串返回,子目录的列表,以及当前目录及其子目录中所有文件的列表。

要找到名称为 filename.txt 的文件,我们可以先得到该目录中的所有文件,然后再通过循环得到所需的文件。下面的代码示例演示了如何通过遍历一个目录中的文件来查找文件。

import os

myfile = 'filename.txt'
for root, dirs, files in os.walk("Desktop/myFolder"):
    for file in files:
        if file == myfile:
            print(file)

在 Python 中使用 iglob() 方法遍历目录中的文件

glob() 模块的 iglob() 方法将所需文件的目录路径和扩展名作为输入,并返回所有具有相同扩展名的文件路径。下面的代码示例演示了如何在 Python 中使用 iglob() 方法在目录中循环查找所需文件。

import glob

for filepath in glob.iglob('drive/test/*.txt'):
    if filepath.endswith('/filename.txt'):
        print(filepath)

相关文章 - Python File