python读取文件夹最新图片_【python碎碎念】如何花式读取文件

本文介绍了如何在Python中读取CSV文件和遍历文件夹中的图片。使用csv库读取CSV文件,通过csv.reader逐行读取并转换为浮点数列表。利用glob库配合opencv读取文件夹下的所有.jpg图片,将图片转换为numpy float类型数组。这些技巧对于机器学习项目非常实用。
摘要由CSDN通过智能技术生成

不管是做深度学习,还是普通的编程项目,很多时候你都要和形形色色格式的文件格式打交道,掌握文件读取也就变得十分必要。我们用这一期来盘点一下各种形式的文件都有哪种读取方式。

一、读取csv文件

作为机器学习的爱好者,相信你一定对csv文件不陌生。如果不知道,这里我简述一下,你完全可以把它理解成一个excel文件,也就是.xls,只不过数据存储的形式不一样。就好比同样的视频,我们可以用不同的编码方式把他们存储成avi, fls, mp4等等,里面可能会涉及到数据的压缩问题,不过,对于人来说,它们都是一个东西——一个供我们看的视频。

在python中,读取csv文件自然要用到csv库,也就是,你要

import csv

值得注意的是,csv库下的方法reader是以行为单位读取文件的。读出来的行是字符串而不是我们需要的float, 因此我们还需要用到强制转换。下面是一个我自己编写的csv文件阅读函数,各位可以自己亲手试一试,很好理解。

def read(name): # read dataset

train = []

with open(name) as csvfile:

csv_reader = csv.reader(csvfile)

for row in csv_reader: # reader method would read in line

train.append(row)

train = [[float(x) for x in row] for row in train]

train = np.array(train)

return train

二、读取一个文件夹下的所有图片

作为学机器学习的,常用的构建project文件夹的方法是:建立一个train文件夹,里面放上所有训练集的图片,再建一个test文件夹,放上所有测试集的图片,因此,我们需要程序能自行遍历图片,怎么做。

事实上,python里面有一个非常好用的库glob,它可以帮你生成一个文件名数组,比如说,你的 train 文件夹下有三个图片:a.jpg, b.jpg, c.jpg。

这个 glob 库可以帮你生成一个["train/a.jpg","train/b.jpg","train/c.jpg"]的文件名数组。得到他,你就可以配合opencv里面读取单独文件的方法,遍历文件夹了。需要注意的是,该方法不帮你读取文件格式,因此,你需要自行添加。

这里给出例子

dirImage = 'train/'

filenames = []

filenames += glob.glob(dirImage+"/*"+".jpg")

images = []

for file in filenames:

img = np.asarray(cv.imread(file, 0))

images.append(img)

images = np.asarray(images)

在机器学习任务中,我们想要的图片数据格式往往是 numpy float 类型,因此,我们还需要进行强制转换。

今天先给出这两种文件的读取方法,以后对于更多简单实用的方法,我会在这里补充,如有好的建议可以在下方评论。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值