python对csv文档进行读,写,追加操作(csv,pandas)

python处理csv文档的两种方法(csv,pandas)

python处理csv一般采用两种方法一种是import pandas 另一种是 import csv
本文将介绍这两种方法对csv进行读,写,追加的操作


1.import pandas

import pandas as pd
df = pd.read_csv(path, header=0)

header=0是第一行为标题,若header=1是第二行为标题,第一行的数据就忽略

数据转换成DataFrame格式后保存
index:是否要索引,是否显示行名,default=True
如含有中文则添加 encoding=“utf_8_sig”,否则会乱码
df.to_csv(‘abc.csv’,encoding=“utf_8_sig”,index=None)

import pandas as pd
a = [1,2,3]
b = [4,5,6]    
data = pd.DataFrame({'a':a,'b':b})
df=pd.DataFrame(data)
df.to_csv('abc.csv',index=None)

追加

mode=a 此为追加模式,可看下表

import pandas as pd
a = [1,2,3]
b = [4,5,6]    
data = pd.DataFrame({'a':a,'b':b})
df=pd.DataFrame(data)
df.to_csv('abc.csv',index=None,mode='a') 

2.import csv

打开方式 功能 Note
w 若存在内容,原内容会先清空,不存在文件则会新建
w+ 写读(先写后读) 若存在内容,原内容会先清空,不存在文件则会新建
r 文件必须存在
r+ 读写(先读后写) 文件必须存在
a 追加 如存在数据,新数据将添加到结尾,不存在文件则会新建
a+ 追加 如存在数据,新数据将添加到结尾,不存在文件则会新建
wb+ 二进制方式写读(先写后读) 若存在内容,原内容会先清空,不存在文件则会新建
rb+ 二进制方式读写(先读后写) 文件必须存在
ab+ 二进制方式追加 如存在数据,新数据将添加到结尾,不存在文件则会新建

不加newline就会有多余的空行,所以记得添加newline

import csv 
with open('test.csv','r')as f:
    f_csv = csv.reader(f)
    for row in f_csv:
        print(row)
list方式写入
import csv 
with open(path, 'w',newline='') as f:
	writer = csv.writer(f)
	writer.writerow([['a','b'],['c','d']])
字典方式写入
import csv 
dict =[{'name': 'a', 'year': '2'}, 
     {'name': 'b', 'year': '2'} ]
title = ['name', 'year']
with open(path, 'w') as csvfile: 
    writer = csv.DictWriter(csvfile, fieldnames = title) 
    writer.writeheader() 
    writer.writerows(dict)  
追加
import csv 
with open(path, 'a',newline='') as f:
	writer = csv.writer(f)
	writer.writerow(['a','b'])

猜你喜欢

转载自blog.csdn.net/weixin_45760685/article/details/104900836