前言:最近开始学习tensorflow框架,选修课让任选一种框架实现mnist手写数字的识别分类。小詹也就随着大流选择了 tf 框架,跟着教程边学边做,小詹用了不同的神经网络实现了识别分类,其中有一个步骤是将训练过程得到的模型进行保存,在之后的测试中加载并使用该模型。想到这种先保存再加载调用的过程,之前很多地方都遇到过呀,最简单常用的就是python中文件的存取哇!于是乎,小詹夜观星象,就着手整理记录各种文件存取的骚操作,具体如下。
(PS:虽然我知道技术文章太长,耐心看完的人很少,曝光率和点赞率会下降,更不会有什么收益,但是还是想记录下自己学习过程中的一些笔记,以后自己或者别人查起来方便些!)
●Python内置方法
●numpy模块方法
●os模块方法
●csv模块方法
在不需要借助任何外界库的前提下,python内置方法其实也可以完成我们需要的文件存取任务,这里主要介绍几种python内置方法的使用方式,最后再给出一个实际案例展示:
buffering: 如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
这里主要介绍numpy模块中的两个常用方法,用于保存读取数据。
np.loadtxt(filename, dtype=int, delimiter=' ') np.savetxt(filename, a, fmt="%d", delimiter=",")
其中,filename为要保存或读取的文件名,a为存取的内容,delimiter为分隔符号。这个使用很简单,代码如下:
import numpy as np
a=np.arange(0,10,0.5).reshape(4,-1)
#改为保存为整数,以逗号分隔
np.savetxt("a.txt",a,fmt="%d",delimiter=",")
#load时也要指定为逗号分隔
b = np.loadtxt("a.txt",delimiter=",")
print('b=\n',b)
其运行结果,创建了一个名为’a.txt‘ 的文件,保存了数组,并print打印出来读取结果,如下图:
python中的os模块很强大,提供了许多文件处理操作的方法。以下列举出常用的几种方法。
这里注意针对内容的写入举例,注意str要转换成byte,否则会报错(a bytes-like object is required, not ‘str’)!
import os
# # 打开文件
fd = os.open("f1.txt",os.O_RDWR|os.O_CREAT)
# # 写入字符串
line = "this is xiaozhan"
b = str.encode(line)
os.write(fd,b)
# #直接写str报错:a bytes-like object is required, not ‘str’
os.close(fd)
#以可读模式打开
fd = os.open("f1.txt",os.O_RDWR)
ret = os.read(fd,16)
print(ret)
os.close(fd)
print('finish close')
# os.remove('f1.txt')
运行结果如下:
和前几种方法一样,主要是读取和写入两个部分。主要依靠csv.reader(),csv.writer()和writerow()方法。和前边几种大同小异,这里直接代码中讲解基础的使用方式。
import csv
with open('l.csv', 'w',newline='') as csvfile:
#csv.writer()方法创建
eWriter = csv.writer(csvfile)
#用writerow()方法逐行写入
eWriter.writerow(['ID', '名字', '粉丝数量'])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
eWriter.writerow(['xiaoxiaozhantongxue','小詹学python',15000])
#打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open()
with open('l.csv','r') as csvfile:
#读取csv文件,返回的是迭代类型
read = csv.reader(csvfile)
for i in read:
print(i)
运行结果如下图:
以上就是本次整理的内容了,方便自己查阅也希望对各位读者有一丢丢用噢!文章太长,耐心看到这的,我得给你点个赞,送你一个么么哒。最后记得点一下?噢!
往期推荐
Python系列之——在北京当房奴的日子~
父亲说 | 我不喜欢吃这个,你都吃了吧!
Leetcode打卡 | No.008 字符串转整数