转自:
微点阅读
https://www.weidianyuedu.com
今天学习python的CSV文件读写操作。
首先看我桌面的test.csv文件:是一种使用逗号分隔的文件格式,可以用excel打开,或者用txt打开:
接下来新建一个python文件命名为py3_csv_op.py,在这个文件中进行操作代码编写:
import csv####第一种方式使用csv的reader() writer()#读取test.csv文件,这里指定了字符集编码UTF-8-sigencode = "UTF-8-sig"withopen("test.csv","r",encoding=encode) as csv_file:#获取csv reader读取对象#delimiter参数默认值逗号 可不写 csv_reader = csv.reader(csv_file,delimiter=",")#打开test_copy.csv文件withopen("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方法实现####本人更喜欢第二种方式withopen("test.csv","r",encoding=encode) as csv_file: csv_reader = csv.DictReader(csv_file,delimiter=",")withopen("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)
运行以上代码,得到如下结果图:
今天初学python的CSV文件读写操作就到这里!