python操作csv文件:读取、写入、末行追加

本文详细介绍了如何使用Python的内置库csv进行CSV文件的读取和写入操作。在读取时,可以以字符串、列表和字典形式进行,并展示了不同方式的示例。同时,文章提醒在写入CSV文件时要注意newline参数的设置,避免产生额外的空行。此外,还提供了追加写入的示例。
摘要由CSDN通过智能技术生成

转自: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文件生成的时候,里面会每隔一行出现一个空白行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值