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='\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,分隔符默认为逗号

参考文章:https://www.cnblogs.com/sea-stream/p/10310288.html

如何读取csv:https://blog.csdn.net/ninnyyan/article/details/80763301?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

发布了43 篇原创文章 · 获赞 0 · 访问量 1878

猜你喜欢

转载自blog.csdn.net/weixin_39331401/article/details/104858333