CSV文件的创建与读取

一 CSV文件

 CSV文件是最常用的一个文件存储方式。逗号分隔值(Common-Separated Values,CSV)文件以纯文本形式存储表格数据(注:分隔字符也可以是其他字符)。纯文本说明该文件是一个字符序列,不包含必须像二进制数字那样被解读的数据。

 CSV文件由任意数目记录组成,记录间以某种换行符分隔;每条记录由若干字段组成,字段间以字符(如逗号)或字符串分隔。

 

二 案例分析

本例实现对daisy,dandelion,rose进行分类,项目结构如下:

其中,Data文件夹下有daisy,dandelion,rose三类植物,每类四张JPG格式图片,CSV_Writer.py负责创建CSV文件,CSV_Reader负责读取CSV文件。

1. CSV_Writer.py

import os

path = "Data"
dirnames = os.listdir(path)
strText = ""

with open("train_list.csv", "w") as fid:
    for a in dirnames:
        filenames = os.listdir(path + os.sep + a)
        for b in range(len(filenames)):
            strText = path + os.sep + a + os.sep + filenames[b] + "," + filenames[b].split("_")[0] + "\n"
            fid.write(strText)
fid.close()

比较简单的Python代码不多做解释,直接看train_list.csv中写入的数据,如下:

2.CSV_Reader.py

import tensorflow as tf
import cv2

image_address_list = []
image_label_list = []

with open("train_list.csv") as fid:
    # 调用readline()按行读取即可
    for image in fid.readlines():
        image_address_list.append(image.strip().split(",")[0])   # 图片存储地址
        image_label_list.append(image.strip().split(",")[1])     # 图片标签


# 按地址读取图片
def get_image(image_path):
    return tf.image.convert_image_dtype(tf.image.decode_jpeg(tf.read_file(image_path), channels=3), dtype=tf.float32)


with tf.Session() as sess:
    for i in range(len(image_label_list)):
        img = get_image(image_address_list[i])
        cv2Img = sess.run(img)
        img2 = cv2.resize(cv2Img, (600, 600))
        cv2.imshow('image', img2)
        cv2.waitKey()

 

 

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值