python的数据保存到文本文件一般分为两种,一种是numpy格式的数据,一种是list的数据。
numpy格式相对简单容易,只需要两个函数:
np.savetxt(path+filename, data)
np.loadtxt(path)
如果没有什么特殊要求,按照上述函数及参数就可以实现保存和读取。
如果有其他要求请看函数定义:
保存:
def savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='',
footer='', comments='# ', encoding=None):
"""
Save an array to a text file.
Parameters
----------
fname : 文件名
X : 要保存的数据.
fmt : 数据格式
delimiter : 保存的数据列间隔,可设置逗号空格等
newline : 保存的数据列间隔,可设置逗号空格等
header : 文件头,插入文本开头,可设置文件标题等
footer : 类似文件头,插入文本末尾
comments : 前缀,可用来做注释
encoding :编码,默认就好
读取:
def loadtxt(fname, dtype=float, comments='#', delimiter=None,
converters=None, skiprows=0, usecols=None, unpack=False,
ndmin=0, encoding='bytes', max_rows=None):
参数类似保存,合并使用参数设置保持一致即可。
保存到TXT
def Save_list(list1,filename):
file2 = open(filename + '.txt', 'w')
for i in range(len(list1)):
for j in range(len(list1[i])):
file2.write(str(list1[i][j])) # write函数不能写int类型的参数,所以使用str()转化
file2.write('\t') # 相当于Tab一下,换一个单元格
file2.write('\n') # 写完一行立马换行
file2.close()
读取到List
def Read_list(filename):
file1 = open(filename+".txt", "r")
list_row =file1.readlines()
list_source = []
for i in range(len(list_row)):
column_list = list_row[i].strip().split("\t") # 每一行split后是一个列表
list_source.append(column_list) # 在末尾追加到list_source
for i in range(len(list_source)): # 行数
for j in range(len(list_source[i])): # 列数
list_source[i][j]=float(list_source[i][j])
file1.close()
return list_source
注意:读取代码部分,第二个循环时为了保持读取的list元素数据类型和原本一致,float可以被替换成需要的数据类型.