本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

文件操作

一、操作CSV文件:

1.1. 文件保存:

有时候我们有了一个数组,需要保存到文件中,那么可以使用np.savetxt来实现。相关的函数描述如下:

np.savetxt(frame, array, fmt='%.18e', delimiter=None) * frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件 * array : 存入文件的数组 * fmt : 写入文件的格式,例如:%d %.2f %.18e * delimiter : 分割字符串,默认是任何空格

以下是使用的例子:

a = np.arange(100).reshape(5,20) np.savetxt("a.csv",a,fmt="%d",delimiter=",")

1.2. 读取文件:

有时候我们的数据是需要从文件中读取出来的,那么可以使用np.loadtxt来实现。相关的函数描述如下:

np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False) * frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。 * dtype:数据类型,可选。 * delimiter:分割字符串,默认是任何空格。 * skiprows:跳过前面x行。 * usecols:读取指定的列,用元组组合。 * unpack:如果True,读取出来的数组是转置后的。

二、np独有的存储解决方案:

numpy中还有一种独有的存储解决方案。文件名是以.npy或者npz结尾的。以下是存储和加载的函数。

  1. 存储:np.save(fname,array)np.savez(fname,array)。其中,前者函数的扩展名是.npy,后者的扩展名是.npz,后者是经过压缩的。
  2. 加载:np.load(fname)

三、CSV文件操作:

3.1. 读取csv文件:

import csv with open('stock.csv','r') as fp: reader = csv.reader(fp) titles = next(reader) for x in reader: print(x)

这样操作,以后获取数据的时候,就要通过下表来获取数据。如果想要在获取数据的时候通过标题来获取。那么可以使用DictReader。示例代码如下:

import csv with open('stock.csv','r') as fp: reader = csv.DictReader(fp) for x in reader: print(x['turnoverVol'])

3.2. 写入数据到csv文件:

写入数据到csv文件,需要创建一个writer对象,主要用到两个方法。一个是writerow,这个是写入一行。一个是writerows,这个是写入多行。示例代码如下:

import csv headers = ['name','age','classroom'] values = [ ('zhiliao',18,'111'), ('wena',20,'222'), ('bbc',21,'111') ] with open('test.csv','w',newline='') as fp: writer = csv.writer(fp) writer.writerow(headers) writer.writerows(values)

也可以使用字典的方式把数据写入进去。这时候就需要使用DictWriter了。示例代码如下:

import csv headers = ['name','age','classroom'] values = [ {"name":'wenn',"age":20,"classroom":'222'}, {"name":'abc',"age":30,"classroom":'333'} ] with open('test.csv','w',newline='') as fp: writer = csv.DictWriter(fp,headers) writer.writerow({'name':'zhiliao',"age":18,"classroom":'111'}) writer.writerows(values)

1481人已阅读,今天你学习了吗?

添加新回复
目录