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:
