将一个文件夹里面的图片的名称打印成一个txt文件,里面包含各个图片的路径
# -*- coding:utf-8 -*-
# @Time : 2022-08-23 16:10
# @Author : DaFuChen
# @File : make_txt.py
# @software: PyCharm
import os
import numpy as np
def writ_txt_fuction(file_path):
file_name = []
file_list = os.listdir(file_path)
# 下面的一部分代码是循环一个文件夹里面的多个子文件夹 就是一个文件夹里面包括多个子文件夹,子文件夹里面包含了一类的图片
# for item in file_list:
# items_path = os.path.join(file_path, item)
# for items_name in os.listdir(items_path):
# file_name.append(file_path + '\\' + items_name + '\t' + item)
# 写一个只对一个文件夹进行图片分类
for item in file_list:
# print(item)
file_name.append(file_path + '\\' + item)
# print(file_name)
# 随机文件名列表
# 设置一个随机种子,方便结果可以进行复现 这个种子一定需要使用np里面的,因为下面进行打散的就是使用的是np里面进行的随机分配种子
np.random.seed(1980)
np.random.shuffle(file_name)
# print(file_name)
# 划分为训练集,测试集 比例现在做成 8:2 使用已经完成了随机分散的那个新的列表值file_name文件夹
# train = file_list[: int(len(file_list)* 0.8)]
train = file_name[: int(len(file_name) * 0.8)]
test = file_name[int(len(file_name)*0.8):]
# 分别将上面的路径信息写入txt文件夹当中
# 这两个txt文件夹需要自己进行创建
# 完成换行操作
with open('./fish_train.txt', 'w') as f1, open('./fish_test.txt', 'w') as f2:
for i in train:
# 加上种类的标签
# red是那一类图片名字特有的名字
if 'red' in i:
# 再加上路径手写更快捷(* - . - *)!!!
# 标签前面有一个空格 使用两条横杠替换目标
# f1.write(b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "") + ' 0' + '\n')
# 因为i是一个很长的地址,所以可以按照自己的需求进行修改代码即可,最后保留自己需要存储进去的路径信息就行了
# 这里使用\\是为了满足项目要求
b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
c = b.replace("\\", "/")
# 下面的 O 是我对这种鱼类的分类
f1.write(c + ' 0' + '\n')
else:
b = i.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
c = b.replace("\\", "/")
f1.write(c + ' 1' + '\n')
# 注意这个写的对象是f2,需要重点关注好,写了f1就会发生错误
for j in test:
if 'red' in j:
b = j.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
c = b.replace("\\", "/")
f2.write(c + ' 0' + '\n')
else:
b = j.replace("E:\Python代码汇总\A大三Python练习\鱼类分类\\fish2_data\\", "")
c = b.replace("\\", "/")
f2.write(c + ' 1' + '\n')
print("完成,但是最后因为换行有一个空行,需要清除一下方式有错误出现")
if __name__ == "__main__":
file_path = r"E:\Python代码汇总\A大三Python练习\鱼类分类\fish2_data\fish_data\org_data"
writ_txt_fuction(file_path)
我的文件夹里面包含了两种鱼类
最后做成的txt文件里面的信息为:
这个是自己在阿里天池里面找到的一个开源的鱼类数据集,然后抱着玩玩的心态做的一个小尝试,然后很多的预处理代码也是借鉴CSDN的大佬的代码,但是因为参照了很多篇博客最后自己做出来的,所以就不一一列举这些博客了,因为我基本是将这些博客缝合,在这里感谢分享技术的大佬们。