• 将一个文件夹里面的图片的名称打印成一个txt文件,里面包含各个图片的路径


    1. # -*- coding:utf-8 -*-
    2. # @Time : 2022-08-23 16:10
    3. # @Author : DaFuChen
    4. # @File : make_txt.py
    5. # @software: PyCharm
    6. import os
    7. import numpy as np
    8. def writ_txt_fuction(file_path):
    9. file_name = []
    10. file_list = os.listdir(file_path)
    11. # 下面的一部分代码是循环一个文件夹里面的多个子文件夹 就是一个文件夹里面包括多个子文件夹,子文件夹里面包含了一类的图片
    12. # for item in file_list:
    13. # items_path = os.path.join(file_path, item)
    14. # for items_name in os.listdir(items_path):
    15. # file_name.append(file_path + '\\' + items_name + '\t' + item)
    16. # 写一个只对一个文件夹进行图片分类
    17. for item in file_list:
    18. # print(item)
    19. file_name.append(file_path + '\\' + item)
    20. # print(file_name)
    21. # 随机文件名列表
    22. # 设置一个随机种子,方便结果可以进行复现 这个种子一定需要使用np里面的,因为下面进行打散的就是使用的是np里面进行的随机分配种子
    23. np.random.seed(1980)
    24. np.random.shuffle(file_name)
    25. # print(file_name)
    26. # 划分为训练集,测试集 比例现在做成 8:2 使用已经完成了随机分散的那个新的列表值file_name文件夹
    27. # train = file_list[: int(len(file_list)* 0.8)]
    28. train = file_name[: int(len(file_name) * 0.8)]
    29. test = file_name[int(len(file_name)*0.8):]
    30. # 分别将上面的路径信息写入txt文件夹当中
    31. # 这两个txt文件夹需要自己进行创建
    32. # 完成换行操作
    33. with open('./fish_train.txt', 'w') as f1, open('./fish_test.txt', 'w') as f2:
    34. for i in train:
    35. # 加上种类的标签
    36. # red是那一类图片名字特有的名字
    37. if 'red' in i:
    38. # 再加上路径手写更快捷(* - . - *)!!!
    39. # 标签前面有一个空格 使用两条横杠替换目标
    40. # f1.write(b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "") + ' 0' + '\n')
    41. # 因为i是一个很长的地址,所以可以按照自己的需求进行修改代码即可,最后保留自己需要存储进去的路径信息就行了
    42. # 这里使用\\是为了满足项目要求
    43. b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
    44. c = b.replace("\\", "/")
    45. # 下面的 O 是我对这种鱼类的分类
    46. f1.write(c + ' 0' + '\n')
    47. else:
    48. b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
    49. c = b.replace("\\", "/")
    50. f1.write(c + ' 1' + '\n')
    51. # 注意这个写的对象是f2,需要重点关注好,写了f1就会发生错误
    52. for j in test:
    53. if 'red' in j:
    54. b = j.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
    55. c = b.replace("\\", "/")
    56. f2.write(c + ' 0' + '\n')
    57. else:
    58. b = j.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
    59. c = b.replace("\\", "/")
    60. f2.write(c + ' 1' + '\n')
    61. print("完成,但是最后因为换行有一个空行,需要清除一下方式有错误出现")
    62. if __name__ == "__main__":
    63. file_path = r"E:\Python代码汇总\A大三Python练习\鱼类分类\fish2_data\fish_data\org_data"
    64. writ_txt_fuction(file_path)

    我的文件夹里面包含了两种鱼类

                                   

    最后做成的txt文件里面的信息为:

    这个是自己在阿里天池里面找到的一个开源的鱼类数据集,然后抱着玩玩的心态做的一个小尝试,然后很多的预处理代码也是借鉴CSDN的大佬的代码,但是因为参照了很多篇博客最后自己做出来的,所以就不一一列举这些博客了,因为我基本是将这些博客缝合,在这里感谢分享技术的大佬们。

  • 相关阅读:
    【直播笔记0628】 高频面试并发的本质:JAVA程序员应该掌握的并发知识
    一文让你搞懂MYSQL底层原理。-内部结构、索引、锁、集群
    数据预处理方法
    【高速数字化仪应用案例系列】虹科数字化仪在大型物理实验领域的应用
    本地项目推送到gitlab仓库,基本的git命令
    2023.10.03
    前端不得不知道的知识-发布上线(vue为例)
    【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)
    【计算机网络】基础知识复习-第二章-计算机网络体系结构与协议
    netty系列之:JVM中的Reference count原来netty中也有
  • 原文地址:https://blog.csdn.net/blockshowtouse/article/details/126540435