法一:打开一个路径然后用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='\t') #这里可以设置分隔符,默认为用逗号分隔,这里用'\t'
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='\t') #index为true会多写一列index,分隔符默认为逗号