python保存二维列表到txt文件,读取txt文件里面的数据转化为二维列表

源码:

# 读文件里面的数据转化为二维列表
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
    print(list_source)
#保存二维列表到文件
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()

lists=[[1,2,3,4],[45,23,456,23,54,23],[12,23,23,345,23,12]]

Save_list(lists,'myfile')
Read_list('myfile')

输出[['1', '2', '3', '4'], ['45', '23', '456', '23', '54', '23'], ['12', '23', '23', '345', '23', '12']]

但是发现一个问题,里面元素变成了字符类型。

优化代码:

# 读文件里面的数据转化为二维列表
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]=int(list_source[i][j])

    print(list_source)
#保存二维列表到文件
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()

lists=[[1,2,3,4],[45,23,456,23,54,23],[12,23,23,345,23,12]]

Save_list(lists,'myfile')
Read_list('myfile')

输出:[[1, 2, 3, 4], [45, 23, 456, 23, 54, 23], [12, 23, 23, 345, 23, 12]]

猜你喜欢

转载自www.cnblogs.com/easyidea/p/11042416.html