赞
踩
csv.reader(file, delimiter='\t')
,其中 delimiter 代表分隔符,通常根据数据集中相邻元素之间的分隔方式来设定,函数默认每行数据的元素间是以逗号分隔(也可以设置为'\t')。
csv.reader()返回一个reader对象,利用该对象可以遍历csv文件中的行,从csv文件中读取的每一行都以字符串列表的形式返回。
- '''
- test.csv, 数据以'\t'分割:
- name score
- Mike 61
- hero 89
- trump 90
- '''
-
- with open('..\\data\\test.csv') as file:
- csv_reader = csv.reader(file, delimiter='\t')
- for row in csv_reader:
- # 第一行为标题头
- print(row) # List类型
- print(row[0], row[1]) # 列表中的元素
-
-
- # 输出
- ['name', 'score']
- name score
- ['Mike', '61']
- Mike 61
- ['hero', '89']
- hero 89
- ['trump', '90']
- trump 90
3.1 csv.DictReader
csv.DictReader(file, delimiter=',')
,csv文件的标题头会被识别为键,非第一行会被识别为值,以有序字典OrderedDict的形式返回。
OrderedDict是一种长相类似于列表的数据类型,该列表中嵌套着元组例:line = OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')])
,每个元组中的第一个元素为键,第二个元素为值(类似于字典)。
- '''
- test.csv, 数据以'\t'分割
- name score
- Mike 61
- hero 89
- trump 90
- '''
-
- import csv
- with open('..\\data\\test.csv') as file:
- csv_reader = csv.DictReader(file, delimiter='\t')
- for row in csv_reader:
- # 以首次输出进行说明
- print(row) # {'name': 'Mike', 'score': '61'},这里自动输出为字典
- print(row['name'], row['score']) # 返回:Mike 61
-
-
- # 输出
- {'name': 'Mike', 'score': '61'}
- Mike 61
- {'name': 'hero', 'score': '89'}
- hero 89
- {'name': 'trump', 'score': '90'}
- trump 90
3.2 csv.writer
csv.writer(file, delimiter='\t') 创建一个常规Writer的对象,传入的是列表类型的数据。
- '''
- test.csv, 数据以'\t'分割:
- name score
- Mike 61
- hero 89
- trump 90
- '''
-
- import csv
-
- # a 即以代表 append 方式写入csv文件
- with open('..\\data\\test.csv', 'a') as file:
- csv_writer = csv.writer(file, delimiter='\t')
- # 将列表中的元素依次附加在 csv 文件的下一行
- csv_writer.writerow(["Alice", "70"])
-
- '''
- 新test.csv:
- name score
- Mike 61
- hero 89
- trump 90
- Alice 70
- '''
3.3 csv.DictWriter
csv.DictWriter(file, fieldnames, delimiter='\t') 创建一个常规Writer的对象,传入的是字典类型的数据。
- '''
- test.csv, 数据以'\t'分割:
- name score
- Mike 61
- hero 89
- trump 90
- Alice 70
- '''
-
- import csv
-
- # newline=‘’参数可以使每次写入数据不会产生空行
- with open('..\\data\\test.csv', 'a', newline= '') as file:
- # 以字典方式写入
- csv_writer = csv.DictWriter(file, fieldnames=['name', 'score'], delimiter='\t')
- # 将字典中的元素依次附加在 csv 文件的下一行
- csv_writer.writerow({"name": "Johnson", "score": "50"})
-
- '''
- 新test.csv:
- name score
- Mike 61
- hero 89
- trump 90
- Alice 70
- Johnson 50
- '''
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。