转自:https://www.cnblogs.com/ttj57/p/13588524.html

csv文件与txt文件类似,区别点就是在csv文件中,字段间使用“,”或“|”隔开,达到类似与表格的效果。csv文件可以使用记事本打开(打开可见分隔符“,”),也可使用excel打开(打开以表格形式显示,看不见分隔符)。注意:尽量不要使用wps打开,可能会打乱格式。

#在操作csv文件时,需要导入csv库,csv是python内置库,无需下载

import csv

 #读取csv文件内容
#在操作csv文件时,文件要保持打开状态,mode='r'表示操作模式为只读
cdata=open(r'./test.csv',mode='r',encoding='utf8')

#以字符串形式进行读取,每次读取一行,返回结果包含分隔符
# for i in cdata:
#     print(i)#结果为字符串,如:"1,3,5,7"

#以列表形式进行读取,可使用循环遍历每一行读取
# clist=csv.reader(cdata)#注意:文件打开后每次只能进行一次操作
# for i in clist:
#     print(i)#结果为列表,列表内元素为字符串类型,如:['1', '3', '5', '7']


#可将数据直接添加到列表中,方便后期使用
# result=[]#定义一个列表存储文件数据
# result.extend(clist)#将数据添加到列表中
# print(result)#[['1', '3', '5', '7'], ['2', '4', '6', '8']]

#以字典形式进行读取,可使用循环遍历每一行读取
cdict=csv.DictReader(cdata)
for i in cdict:
    print('%s,%s,%s,%s'%(i['l1'],i['l2'],i['l3'],i['l4']))
# cdata.close()#关闭文件

#写入操作
#对csv文件进行写入操作,mode='w'表示操作模式为只写,如文件不存在则自动创建文件覆盖写入
with open(r'./test2.csv',mode='w',newline='',encoding='utf8') as cf:
    wf=csv.writer(cf)
    wf.writerow(['name', 'age', 'sex'])
    data = [['小丽', '10', '女'], ['小李', '12', '男'], ['小力', '9', '男']]
    for i in data:
        wf.writerow(i)

#末尾追加写入,文件必须已存在
with open(r'./test2.csv',mode='a',newline='',encoding='utf8') as cfa:
    wf = csv.writer(cfa)
    data2 = [['小美', '10', '女'], ['小力', '12', '男'],]
    for i in data2:
        wf.writerow(i)

注意

with open(r'./test2.csv',mode='w',newline='',encoding='utf8') as cf:

如果不写 newline='',csv文件生成的时候,里面会每隔一行出现一个空白行

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐