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:

经验分享 程序员 微信小程序 职场和发展