今天学习python的CSV文件读写操作,并记录学习过程欢迎大家一起交流分享。
首先看我桌面的test.csv文件:是一种使用逗号分隔的文件格式,可以用excel打开,或者用txt打开:
接下来新建一个python文件命名为py3_csv_op.py,在这个文件中进行操作代码编写:
import csv
####第一种方式使用csv的reader() writer()
#读取test.csv文件,这里指定了字符集编码UTF-8-sig
encode = "UTF-8-sig"
with open("test.csv","r",encoding=encode) as csv_file:
#获取csv reader读取对象
#delimiter参数默认值逗号 可不写
csv_reader = csv.reader(csv_file,delimiter=",")
#打开test_copy.csv文件
with open("test_copy.csv","w",encoding=encode) as w_file:
#获取csv writer写入对象
#为了区分效果delimiter分隔符用-
csv_writer = csv.writer(w_file,delimiter="-")
#循环数据,写入每一列到新的文件中
for line in csv_reader:
csv_writer.writerow(line)
####第二种方式使用csv的dictionary reader
####dictionary writer方法实现
####本人更喜欢第二种方式
with open("test.csv","r",encoding=encode) as csv_file:
csv_reader = csv.DictReader(csv_file,delimiter=",")
with open("test_csv_copy.csv","w",encoding=encode) as new_file:
#这里定义新的csv字段名字只保留姓名和性别
fieldnames = ["姓名","性别"]
csv_writer = csv.DictWriter(new_file,fieldnames=fieldnames,delimiter="\t")
#先把表头写入
csv_writer.writeheader()
for line in csv_reader:
#获取的每一行数据为字典形式
#eg:OrderedDict([("\ufeff姓名", "企鹅"), ("年龄", "23"), ("性别", "女")])
#删除掉年龄
del line["年龄"]
csv_writer.writerow(line)
运行以上代码,得到如下结果图:
品略图书馆 http://www.pinlue.com
今天初学python的CSV文件读写操作就到这里!