python从入门到入魔第是十一天——CSV标准库的使用

除了用excel处理表格外还有这种方式!!

CSV类型文件格式的介绍

在上篇python从入门到入魔第十天——文件的使用以及数据格式化介绍了用代码实现对CSV二维数据格式的文件进行操作,这才介绍专门对CSV类型文件操作的标准库

二维数据格式——CSV格式文件特点:
	1.纯文本格式,通过统一的utf-8编码表示字符
	2.以行为单位,开头不留空行,行之间没有空行
	3.每行表示一个一维数据,多行表示二维数据
	4.以逗号(英文,半角)分割每列数据,列数据为空也要保留逗号     **
	5.对于表格内容,可以包含或不包含列名,包含时列名放置在文件第一行
	6.采用后缀为.csv为扩展名,可以使用Excel 或 记事本 打开
	7.用csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小
	8.不足之处是csv文件缺少Excel文件本身的很多功能,比如不能嵌入图像和图表,不能生成公式

CSV标准库使用

CSV标准库是python语言内置的库直接import调用即可,无需额外安装

1、读文件

1、csv.reader()创建一个读文件的对象,得到一个文件对象,可以遍历该对象,每行内容作为一个列表返回

操作的文件内容:社会主义核心价值观

import csv
file_read = open("D:\\日常文件\\核心价值观.csv","r")
csv_reader_obj = csv.reader(file_read)  #得到一个 csv.reader 对象,遍历对象,将会把每行记录分别作为一个 list 返回
for line in csv_reader_obj:
    print(line)

输出结果:
['社会主义核心价值观', '', '', '']
['富强', '民主', '文明', '和谐']
['自由', '平等', '公正', '法制']
['爱国', '敬业', '诚信', '友善']
**输出结果转化为字符串形式:**
 import csv
 file_read = open("D:/日常文件/核心价值观.csv","r")
 csv_reader_obj = csv.reader(file_read)
 for line in csv_reder_obj:
 	 s= ""
     for ele in line:
         s += "{}".format(ele)
     print(s)
输出结果:
社会主义核心价值观
富强民主文明和谐
自由平等公正法制
爱国敬业诚信友善

2、csv.DictReader类用于读取有表头的csv文件,用来更好的反应标题与文件内容的映射关系
使用文件
结果展示

import csv
f = open("D:/日常文件/人员信息.csv","r") #打开文件
dict_reade = csv.DictReader(f)  #创建dict_reade对象
header = dict_reade.fieldnames  #调用fieldnames方法,调出表头
print(header) 
for dict in dict_reade:   #遍历文本内容
    print(dict)
    #print("{:>4}".format(dict["姓名"]),"{:>14}".format(dict["年龄"]))
f.close()
	
输出:
['姓名', '性别', '年龄', '职业']
{'姓名': '小王', '性别': '男', '年龄': '18', '职业': '学生'}
{'姓名': '小红', '性别': '女', '年龄': '21', '职业': '护士'}
{'姓名': '小李', '性别': '男', '年龄': '19', '职业': '学生'}
{'姓名': '小吕', '性别': '男', '年龄': '18', '职业': '学生'}
#输出:
['姓名', '性别', '年龄', '职业']
  小王             18
  小红             21
  小李             19
  小吕             18


2、写文件

1、csv.writer() 创建一个写对象,调用该对象的写方法可写入文件内容
写入一维数据调用.writerow()方法;
写入二位数据不用进行循环循环,可直接调用.writerows()方法;
建议写入列表类型数据

一维数据的写入:
import csv
file_write = open("D:/日常文件/核心价值观.csv","a",newline="") #a为追加写模式 newline=""作用是不写入空行
write = csv.writer(file_write)
list = ["我爱你,中国"]
write.writerow(list) #写入一行 
list2 = [["我的祖国"],["繁荣富强"],["日益昌盛"]]
write.writerows(list2)  #写入多行
file_write.close()

数据写入的结果:
结果展示
2、DictWriter类是将字典类型的数据格式写到文件中,将每一个字典以行为单位写入文件中
使用文件:

csv.DictWriter(f, fieldnames, restval="", extrasaction="raise", dialect="excel", *args, **kwds)
参数:
f : 必选,为文件名
fieldnames: 必选,用于指定字典的 key
restval:可选,用于填充缺失的数据,默认为空字符串 “”。
extrasaction:可选 “raise, “ignore”。默认为 “raise” 表示当要写入的 dict 的 key 在 fieldnames 中不存在时,报错 ValueError,如果为 “ignore” 则表示会忽略这些键值对。

这次换一种方式打开文件

import csv
with open("D:/日常文件/人员信息.csv""w",newline="") as f:
	file_title = ["姓名","性别","年龄","职业"]  #文件头部
    dict_date = {"姓名":"小王","性别":"男","年龄":"18","职业":"学生"}
    dict_dates = [{"姓名":"小红","性别":"女","年龄":"21","职业":"护士"},
                  {"姓名":"小李","性别":"男","年龄":"19","职业":"学生"},
                  {"姓名":"小吕","性别":"男","年龄":"18","职业":"学生"}]
    dict_write = csv.DictWriter(f,fieldnames=file_title) #fieldnames为表头部分
    dict_write.writeheader()         #写入表头
    dict_write.writerow(dict_date)   #写入一行
    dict_write.writerows(dict_dates) #写入多行
f.close()

dict_write.writeheader() 将 fieldnames 作为一行写入 csv 文件中。
dict_write.writerow() 接收一个 dict,将 dict 中的 value 取出来,组成一个 list,作为一行写入 csv 文件中。

结果展示
大侠,感觉可以的话就留下你的赞,让更多人看到吧!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如何学会学习?

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值