数据处理体验

OS库的学习

参考:os模块的学习-获取目录下指定的文件类型

菜鸟教程-Python OS文件/目录方法

其实使用os库的目的就是更方便地遍历文件

那么问题有:

怎么判断是一个文件还是文件夹?

  • os.path.isdir函数用来判断是不是文件夹
  • os.path.isfile函数用来判断是不是文件

怎么移动到下一个文件夹

如果移动到了下一层文件夹了呢?怎么样回到原来路径上来?

常见OS使用思路

思路一

首先建立path,也就是根路径【os.gecwd()】

然后后面的文件调取都是在 path + filename的基础上进行的【使用os.path.join()函数将两部分进行融合】

在循环中进行文件判断【循环是建立在list基础上的,使用os】

使用os.path.isdir简单判断是文件夹还是文件,并直接对文件进行处理

【判断文件类型】可以使用split对文件名称进行分割str.split('.'),分割后是一个列表,然后选择最后一个量【索引值为-1】,最后在判断这段str是不是在指定的类型之中

思路二

使用os.walk():

for root, dirs, files in os.walk(".", topdown=False)

直接得到目录、文件夹列表、文件列表的内容

这样就好多了

还是有个问题,这个东西返回的是一个列表,但是我们需要准确知道某个文件是在哪个具体的文件夹下面的

注意:这里我们要返回某个文件的绝对地址时,并不需要root+dir+file,只需要root+file就可以了

还是有个问题,walk函数中的参数是如何进行设置的

1
os.walk(top, topdown, onerror, followlinks)
  • top:所要遍历的目录的地址,返回一个三元组(root, dirs, files)
  • topdown:默认为true——也就是优先遍历top目录,如果设置为false则优先遍历top的子目录

mat文件

python加载mat文件

首先要使用的包是scipy.io.loadmat(matfile)

参考:python读取并写入mat文件的方法

读取结果是一个dict数据类型,也就是字典,其实是非常好的

然后可以直接处理了,当然。

但是可能转成pandas数据进行处理可能是更好的选择

不过,如果要转化成pandas数据,必须保证数据是一维的!

不过很有意思的是,这里面的数据已经是numpy的ndarray格式了,所以直接用这个进行处理可能要更好一点

获取到的数据相当于维数是(360000, 5)

那么我们在进行读取的时候,必须按照每一维进行读取:

例如base_data[:, i],表示读取第 i+1 维的全部数据,总共有360000个,这个索引确实也是很有意思了

csv和tsv数据

应该说在这个方面 Pandas 是完胜的

因为numpy适合一维、二维数据,而且最好数据类型比较统一

很多csv数据类型并不统一,所以使用Pandas来进行加载就要好很多,而且是可以直接进行索引的,如果不可以,那就要指定一些表头等的内容了

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2022 Sun Yue

请我喝杯咖啡吧~

支付宝
微信