当前位置: 代码迷 >> 综合 >> Python 将数据写入文件(txt、csv、excel)
  详细解决方案

Python 将数据写入文件(txt、csv、excel)

热度:17   发布时间:2023-09-14 13:43:56.0

一、将列表数据写入txt、csv、excel

1、写入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("保存文件成功")

2、写入csv

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("保存文件成功,处理结束")

3、写入excel

#  将数据写入新文件
def data_write(file_path, datas):f = xlwt.Workbook()sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet#将数据写入第 i 行,第 j 列i = 0for data in datas:for j in range(len(data)):sheet1.write(i,j,data[j])i = i + 1        f.save(file_path) #保存文件

二、将字典写入文件

1、写入txt

d = {'a':'aaa','b':'bbb'}
s = str(d)
f = open('dict.txt','w')
f.writelines(s)
f.close()

2、写入excel

data_list = []# 循环得到每一个datafor data in html1:# 循环得到data字典里的所有键值对的值for value in data.values():# 将得到的值放入空列表中data_list.append(value)# 创建一个新的列表生成式并赋给一个变量new_list.# 这个列表生成式主要是将数据每8个为一个新的元素存入新的列表中,即列表套列表new_list = [data_list[i:i + 8] for i in range(0, len(data_list), 8)]# 生成一个xlwt.Workbook对象xls = xlwt.Workbook()# 调用对象的add_sheet方法sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)# 创建我们需要的第一行的标头数据heads = ['chatDomain', 'chatUrl', 'code', 'pid', 'rank3', 'seller', 'shopId','venderId']ls = 0# 将标头循环写入表中for head in heads:sheet.write(0, ls, head)ls += 1i = 1# 将数据分两次循环写入表中 外围循环行for list in new_list:j = 0# 内围循环列for data in list:sheet.write(i, j, data)j += 1i += 1# 最后将文件save保存xls.save('案例.xls')

3、写入csv

import csv
mydict = {key1: value_a, key2: value_b, key3: value_c}
f = open('dict.csv','wb') 
w = csv.DictWriter(f,mydict.keys()) 
w.writerow(mydict) 
f.close()
  相关解决方案