Python读写csv文件

Python中内置了csv模块,用于读写.csv文件

csv写入文件:

1、使用 writerow() 方法

writerow() 方法会将传入的数据填充为 csv 文件的一行

使用 writerow() 方法写入 list 型数据(将数据写到当前目录下的 names.csv 文件中):

import csv

datas = [['1', 'mark'],['2', 'hulk'],['3', 'juck']]
with open('names.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile)
    for data in datas :
        spamwriter.writerow(data)

输出文件结果:

Python读写csv文件_第1张图片

使用 writerow() 方法写入 dict 型数据(将数据写到当前目录下的 names.csv 文件中):

import csv

datas = [
        {'first_name': 'Baked', 'last_name': 'Beans'},
        {'first_name': 'Lovely', 'last_name': 'Spam'},
        {'first_name': 'Wonderful', 'last_name': 'Spam'}
    ]
with open('names.csv', 'w', newline='') as csvfile :
    fieldnames = ['first_name', 'last_name']   # 定义列标题名
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()  # writeheader() 方法用于写入标题
    for data in datas :
        writer.writerow(data)

输出文件结果:

Python读写csv文件_第2张图片

2、使用 writerows() 方法

writerows() 方法传入一个可迭代的对象作为参数,如果传入的是一个 list 类型数据,它会将 list 中的每一项作为一行数据写入;如果传入的是一个 dict 类型数据,它会将 dict 中的 key 值作为每一行的数据写入;如果传入的是一个 str 类型的数据,则它会将字符串的每一个字符作为一行数据写入。

使用 writerows() 方法写入 list 型数据(将数据写到当前目录下的 names.csv 文件中):

import csv

datas = [['1', 'mark'],['2', 'hulk'],['3', 'juck']]
with open('names.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile)
    spamwriter.writerows(datas)

输出文件结果:

Python读写csv文件_第3张图片

使用 writerows() 方法写入 dict 型数据(将数据写到当前目录下的 names.csv 文件中):

注意:这里的字典数据中的 key 值必须要与写入的列标题名称相对应,否则会报 ValueError 异常!

import csv

datas = [
        {'first_name': 'Baked', 'last_name': 'Beans'},
        {'first_name': 'Lovely', 'last_name': 'Spam'},
        {'first_name': 'Wonderful', 'last_name': 'Spam'}
    ]
with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name']  # 列标题名称
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()  # 写入标题
    writer.writerows(datas)

输出文件结果:

Python读写csv文件_第4张图片

使用 writerows() 方法写入 str 型数据(将数据写到当前目录下的 names.csv 文件中):

import csv

datas = "hello world"
with open('names.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile)
    spamwriter.writerows(datas)

输出文件结果:

Python读写csv文件_第5张图片

 

csv读取文件:

csv文件内容如下:

Python读写csv文件_第6张图片

1、使用 reader() 方法( 读取当前目录下的 names.csv件)

使用 reader() 方法读取数据,结果将每一行数据封装成一个 list 返回,即下面一个 row 就是一个 list 。

import csv

with open('names.csv') as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader :
        print(row)     # 将每一行数据封装为一个list返回

输出结果为:

Python读写csv文件_第7张图片

2、使用 DictReader() 方法( 读取当前目录下的 names.csv件)

使用 DictReader() 方法读取数据, 结果将每一行数据封装为一个 OrderedDict 返回,即下面一个 row 就是一个 OrderedDict ,可以通过字典的 key 获得其对应的值。

import csv

with open('names.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader :
        print(row)   # 将每一行数据封装为一个 OrderedDict 返回
        print(row['first_name'],":",row['last_name']) # 可以通过key获得对应的值(key即csv文件对应的列名)

输出结果为:

Python读写csv文件_第8张图片

 

参考:https://docs.python.org/3.6/library/csv.html

你可能感兴趣的:(python,python读写csv,python,csv)