python 写入csv的两种方法
法一:打开一个路径然后用csv.writer写入
#-*- encoding:utf-8 -*- import xlrd import csv # f = open(./dataset/keywords.csv, w, encoding=utf-8) #用with一样的: with open(./dataset/abstracts.csv, w,encoding=utf-8, newline=) as f: #newline是为了没空行 csv_writer = csv.writer(f,delimiter= ) #这里可以设置分隔符,默认为用逗号分隔,这里用 csv_writer.writerow(["NAME", "CONTENT", "STATUS"]) #写表头 bk = xlrd.open_workbook(filename) #把excel数据写到csv里面,#filename是excel的文件路径 try: sh = bk.sheet_by_name(sheetname) #excel的sheetname,一般默认是Sheet1 except: print(no sheet in %s named %s%(filename,sheetname)) nrows = sh.nrows #excel的行数 print(nrows) ncols = sh.ncols for i in range(1, nrows): #第一行是表头,从第二行开始写 cont = sh.cell_value(i, 1).rstrip() name = sh.cell_value(i, 0).rstrip() label = sh.cell_value(i, 2) csv_writer.writerow([name, conts, label]) f.close()
直接写数据的例子
#-*- encoding:utf-8 -*- import csv with open("test.csv","w") as f: writer = csv.writer(f) writer.writerows([["index","a_name","b_name"],[0,1,3],[1,2,3],[2,3,4]]) f.close()
法二:存成dataframe格式直接to_csv
#-*- encoding:utf-8 -*- import pandas as pd #任意的多组列表 a = [1,2,3] b = [4,5,6] #字典中的key值即为csv中列名 df = pd.DataFrame({a_name:a,b_name:b}) #将DataFrame存储为csv,index表示是否显示行名,default=True df.to_csv("test.csv",index=False,sep= ) #index为true会多写一列index,分隔符默认为逗号
如何读取csv: