【Python学习笔记】os.walk

本文介绍如何使用Python的os模块遍历指定文件夹,批量获取图片的完整路径及对应的标签,并将这些信息写入data.txt文件。通过定义文件夹名称与标签的映射关系,实现对data文件夹下图片的自动化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用os.walk函数可以一次得到data文件夹下所有图片的路径及其对应的标签
在这里插入图片描述


import os

# 定义文件夹名称和标签的对应关系
label_map = {
    'cat': 0,
    'dog': 1,
    'bat': 2
}

with open('data.txt', 'w') as f:

    # 遍历所有文件,root为当前文件夹,dirs是所有子文件夹名,files是所有文件名
    for root, dirs, files in os.walk('data'):
        for filename in files:
            # 获得文件完整路径
            filepath = os.path.join(root, filename)
            # 获取当前文件夹名称,即类别名
            dirname = os.path.split(root)[-1]
            # 得到类别名对应的标签
            label = label_map[dirname]
            # 将 图片路径+标签 存入data.txt文件中
            f.write('{},{}\n'.format(filepath, label))

图片路径,标签
在这里插入图片描述

### Python 编程笔记与学习资料 以下是关于 Python 缔造编程笔记和学习的相关内容: #### 注释规范 编写清晰的注释对于代码可读性和维护至关重要。推荐参考知名企业的 Python 编码规范文档,例如华为发布的详细指南[^1]。这些文档通常涵盖了单行注释、多行注释以及文档字符串的标准。 #### 文件操作基础 Python 提供了强大的文件处理功能。`open()` 函数用于打开文件并指定模式(如 `'r'`, `'w'`, 或 `'a+'`),完成操作后需调用 `close()` 方法释放资源[^4]。 示例代码如下: ```python with open('example.txt', 'a+') as file: file.write('Hello, World!\n') print("写入成功") ``` #### OS 模块简介 为了更高效地管理操作系统级别的任务,可以使用 `os` 模块。该模块提供了许多实用的功能,比如路径操作、环境变量访问等[^2]。以下是一个简单的目录遍历示例: ```python import os for root, dirs, files in os.walk('.'): for name in files: print(os.path.join(root, name)) ``` #### 特殊方法的应用 Python 中的一些特殊命名方法(即双下划线开头结尾的方法)赋予了类额外的能力。例如,定义 `__str__()` 可以自定义对象打印时的表现形式;重载 `__len__()` 则允许实例支持内置函数 `len()` 的调用[^3]。 示例展示如何实现一个具有友好显示效果的学生类: ```python class Student: def __init__(self, name): self.name = name def __str__(self): return f'Student(name={self.name})' student_instance = Student('Alice') print(student_instance) # 输出: Student(name=Alice) ``` #### 字符串表示方式的区别 当需要了解某个值的具体表现形式时,可以选择不同的转换手段。其中,`str()` 和 `repr()` 是最常用的两种工具。前者倾向于生成易于阅读的结果,后者则侧重于提供精确无误的表达式[^5]。 ```python value = "'Sample String'" print(f"Using str(): {str(value)}") # Using str(): 'Sample String' print(f"Using repr(): {repr(value)}") # Using repr(): ''Sample String'' ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值