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 file1.close() return 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') print(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]) file1.close() return 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') print(Read_list('myfile'))
输出:[[1, 2, 3, 4], [45, 23, 456, 23, 54, 23], [12, 23, 23, 345, 23, 12]]