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]]

上一篇:Android事件分发机制理解


下一篇:Python笔记25-----------创建二维列表【浅copy】和转置