本文参考自这篇博客,对把列表写入txt文件、csv文件、excel文件的介绍很详细。 因为实验需要,实现了一下写入txt文件
将列表写如txt文件的方式:
def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表.
file = open(filename,'a')
for i in range(len(data)):
s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择
s = s.replace("'",'').replace(',','') +'\n' #去除单引号,逗号,每行末尾追加换行符
file.write(s)
file.close()
print("保存文件成功")
自己实现了一下
ls = [[1,2,3], ['a','b','c'], [4,5,6], ['red','green','blue']]
f = open("q_table_fil.txt", "w+") # 打开文件
for l in ls:
f.write(str(l) + '\n')
f.write('----------\n')
# 将列表的 [] , 全部去掉再写入
for l in ls:
s = str(l).replace("[", " ").replace("]", " ").replace(",", "") + "\n"
f.write(s)
f.close()
最后得出的结果如下: ps:开始写的时候居然忘记了文件的close,不使用 with open() as f 的时候还是要注意一下文件的关闭的… 试着读取一下文件的信息,(这里已经提前删掉了1-5行的内容,读取的为从第6行开始的数据)
f = open("q_table_fil.txt")
line = f.readline().split()
for i in range(len(line)):
print(line[i])
f.close()
输出结果为:
此外,还有写csv文件和excel文件的方式。
写csv文件
import csv
import codecs
def data_write_csv(file_name, datas):#file_name为写入CSV文件的路径,datas为要写入数据列表
file_csv = codecs.open(file_name,'w+','utf-8')#追加
writer = csv.writer(file_csv, delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
for data in datas:
writer.writerow(data)
print("保存文件成功,处理结束")
写excel文件
# 将数据写入新文件
def data_write(file_path, datas):
f = xlwt.Workbook()
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
#将数据写入第 i 行,第 j 列
i = 0
for data in datas:
for j in range(len(data)):
sheet1.write(i,j,data[j])
i = i + 1
f.save(file_path) #保存文件