avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python 遍历文件夹的三种方式
文章

Python 遍历文件夹的三种方式

Posted 2024-10-18 Updated 2024-10- 17
By RWO.
7~9 min read

在 Python 中,遍历文件夹可以使用 os 模块和 os.path 模块提供的函数,也可以使用更高级的 pathlib 模块。以下是一些常用方法来遍历文件夹。

使用 os 模块遍历文件夹

遍历文件夹中的文件和子文件夹

使用 os.walk 可以递归遍历文件夹及其子文件夹。

import os

def traverse_directory(directory):
    for dirpath, dirnames, filenames in os.walk(directory):
        print(f'当前路径: {dirpath}')
        print(f'子文件夹: {dirnames}')
        print(f'文件: {filenames}')
        print('------------------------')

# 使用示例
traverse_directory('path_to_directory')

在这个示例中,os.walk 会生成一个三元组 (dirpath, dirnames, filenames)。其中,dirpath 是当前目录路径,dirnames 是当前目录下的子目录列表,filenames 是当前目录下的文件列表。

仅遍历某个文件夹中的文件

使用 os.listdir 可以列出指定文件夹中的所有文件和子文件夹。可以结合 os.path 来过滤出文件:

import os

def list_files(directory):
    for item in os.listdir(directory):
        item_path = os.path.join(directory, item)
        if os.path.isfile(item_path):
            print(item_path)

# 使用示例
list_files('path_to_directory')

在这个示例中,os.listdir 列出文件夹中的所有项目,并使用 os.path.isfile 来检查每个项目是否为文件。

使用 pathlib 模块遍历文件夹

pathlib教程
Python路径操作模块pathlib,看这篇就够了!
python路径操作新标准:pathlib 模块

pathlib 是一个更现代、更面向对象的文件系统路径操作模块。

遍历文件夹中的文件和子文件夹

from pathlib import Path

def traverse_directory(directory):
    path = Path(directory)
    for item in path.rglob('*'):  # 使用 rglob 递归遍历所有文件和子文件夹
        print(item)

# 使用示例
traverse_directory('path_to_directory')

仅遍历某个文件夹中的文件

from pathlib import Path

def list_files(directory):
    path = Path(directory)
    for item in path.iterdir():
        if item.is_file():
            print(item)

# 使用示例
list_files('path_to_directory')

在这个示例中,Path.iterdir() 返回一个生成器,生成路径对象,item.is_file() 用于检查项目是否为文件。

综合示例

以下是一个综合示例,展示如何使用 os 模块和 pathlib 模块来遍历文件夹中的文件和子文件夹:

import os
from pathlib import Path

# 使用 os 模块遍历文件夹
def traverse_directory_os(directory):
    print("使用 os 模块遍历文件夹:")
    for dirpath, dirnames, filenames in os.walk(directory):
        print(f'当前路径: {dirpath}')
        print(f'子文件夹: {dirnames}')
        print(f'文件: {filenames}')
        print('------------------------')

# 使用 pathlib 模块遍历文件夹
def traverse_directory_pathlib(directory):
    print("使用 pathlib 模块遍历文件夹:")
    path = Path(directory)
    for item in path.rglob('*'):
        print(item)

# 示例调用
directory_path = 'path_to_directory'
traverse_directory_os(directory_path)
traverse_directory_pathlib(directory_path)

通过这两个示例,你可以选择适合自己需求的方法来遍历文件夹。os 模块适合于传统的脚本和小项目,而 pathlib 模块则更现代,适合于面向对象的编程风格。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

Python中的断言(assert)与异常处理(raise)

NEWER

Python 文件以及文件夹改名

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy