一、简单介绍
csv.reader(file, delimiter='\t')
,其中 delimiter 代表分隔符,通常根据数据集中相邻元素之间的分隔方式来设定,函数默认每行数据的元素间是以逗号分隔(也可以设置为'\t')。
csv.reader()返回一个reader对象,利用该对象可以遍历csv文件中的行,从csv文件中读取的每一行都以字符串列表的形式返回。
二、实例
'''test.csv, 数据以'\t'分割:name scoreMike 61hero 89trump 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
三、补充
1 csv.DictReader
csv.DictReader(file, delimiter=',')
,csv文件的标题头会被识别为键,非第一行会被识别为值,以有序字典OrderedDict的形式返回。
OrderedDict是一种长相类似于列表的数据类型,该列表中嵌套着元组例:line = OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')])
,每个元组中的第一个元素为键,第二个元素为值(类似于字典)。
'''test.csv, 数据以'\t'分割name scoreMike 61hero 89trump 90'''import csvwith 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
2 csv.writer
csv.writer(file, delimiter='\t') 创建一个常规Writer的对象,传入的是列表类型的数据。
'''test.csv, 数据以'\t'分割:name scoreMike 61hero 89trump 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 scoreMike 61hero 89trump 90Alice 70'''
3 csv.DictWriter
csv.DictWriter(file, fieldnames, delimiter='\t') 创建一个常规Writer的对象,传入的是字典类型的数据。
'''test.csv, 数据以'\t'分割:name scoreMike 61hero 89trump 90Alice 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 scoreMike 61hero 89trump 90Alice 70Johnson 50'''
来源地址:https://blog.csdn.net/weixin_45684362/article/details/128950601