python数据保存到TXT并读取

python的数据保存到文本文件一般分为两种,一种是numpy格式的数据,一种是list的数据。

numpy

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):

参数类似保存,合并使用参数设置保持一致即可。

List

保存到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可以被替换成需要的数据类型.

你可能感兴趣的:(python数据保存到TXT并读取)