csv.reader的基本使用

一、简单介绍

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
'''

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月23日
下一篇 2023年8月23日

相关推荐