Python CSV 教程

Python CSV 教程显示了如何使用 Python csv 模块读取和写入 CSV 数据。

CSV

CSV(逗号分隔值)是在电子表格和数据库中使用的非常流行的导入和导出数据格式。 CSV 文件中的每一行都是一个数据记录。 每个记录由一个或多个字段组成,用逗号分隔。 CSV 是一种非常简单的数据格式,但是可以有很多差异,例如不同的定界符,换行或引号字符。

Python CSV 模块

csv模块实现用于以 CSV 格式读取和写入表格数据的类。 csv模块的readerwriter对象读取和写入序列。 程序员还可以使用DictReaderDictWriter类以字典形式读取和写入数据。

Python CSV 方法

下表显示了 Python csv 方法:

方法 描述
csv.reader 返回一个遍历 CSV 文件各行的读取器对象
csv.writer 返回将数据写入 CSV 文件的写入器对象
csv.register_dialect 注册 CSV 方言
csv.unregister_dialect 注销 CSV 方言
csv.get_dialect 返回具有给定名称的方言
csv.list_dialects 返回所有已注册的方言
csv.field_size_limit 返回解析器允许的当前最大字段大小

使用 Python csv模块

import csv

要使用 Python CSV 模块,我们导入csv

Python CSV 读取器

csv.reader()方法返回一个读取器对象,该对象遍历给定 CSV 文件中的行。

$ cat numbers.csv 
16,6,4,12,81,6,71,6

numbers.csv文件包含数字。

read_csv.py

#!/usr/bin/python3

import csv

f = open('numbers.csv', 'r')

with f:

    reader = csv.reader(f)

    for row in reader:
        for e in row:
            print(e)

在代码示例中,我们打开numbers.csv进行读取并读取其内容。

reader = csv.reader(f)

我们得到reader对象。

for row in reader:
    for e in row:
        print(e)

通过两个 for 循环,我们遍历数据。

$ ./read_csv.py 
16
6
4
12
81
6
71
6

这是示例的输出。

具有不同分隔符的 Python CSV 读取器

csv.reader()方法允许使用带有delimiter属性的不同定界符。

$ cat items.csv 
pen|cup|bottle
chair|book|tablet

items.csv包含用“ |”分隔的值 字符。

read_csv.py

#!/usr/bin/python3

import csv

f = open('items.csv', 'r')

with f:

    reader = csv.reader(f, delimiter="|")

    for row in reader:

        for e in row:            
            print(e)

该代码示例从使用’|’的 CSV 文件读取并显示数据。 定界符。

$ ./read_csv2.py 
pen
cup
bottle
chair
book
tablet

这是示例的输出。

Python CSV DictReader

csv.DictReader类的操作类似于常规读取器,但会将读取的信息映射到字典中。 字典的键可以使用fieldnames参数传入,也可以从 CSV 文件的第一行推断出来。

$ cat values.csv 
min,avg,max
1, 5.5, 10
2, 3.5, 5

文件的第一行包含字典键。

read_csv_dictionary.py

#!/usr/bin/python3

# read_csv3.py

import csv

f = open('values.csv', 'r')

with f:

    reader = csv.DictReader(f)

    for row in reader:
        print(row['min'], row['avg'], row['max'])

该示例使用csv.DictReadervalues.csv文件中读取值。

for row in reader:
    print(row['min'], row['avg'], row['max'] )

该行是 Python 字典,我们使用键引用数据。

Python CSV 编写器

csv.writer()方法返回一个 writer 对象,该对象将用户数据转换为给定文件状对象上的定界字符串。

write_csv.py

#!/usr/bin/python3

import csv

nms = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12]]

f = open('numbers2.csv', 'w')

with f:

    writer = csv.writer(f)

    for row in nms:
        writer.writerow(row)

该脚本将数字写入numbers2.csv文件。 writerow()方法将一行数据写入指定的文件。

$ cat numbers2.csv 
1,2,3,4,5,6
7,8,9,10,11,12

一次写入所有数据是可能的。 writerows()方法将所有给定的行写入 CSV 文件。

write_csv2.py

#!/usr/bin/python3

import csv

nms = [[1, 2, 3], [7, 8, 9], [10, 11, 12]]

f = open('numbers3.csv', 'w')

with f:

    writer = csv.writer(f)
    writer.writerows(nms)

该代码示例使用writerows()方法将三行数字写入文件。

Python CSV DictWriter

csv.DictWriter类的操作类似于常规编写器,但将 Python 词典映射到 CSV 行。 fieldnames参数是一系列键,这些键标识传递给writerow()方法的字典中的值写入 CSV 文件的顺序。

write_csv_dictionary.py

#!/usr/bin/python3

import csv

f = open('names.csv', 'w')

with f:

    fnames = ['first_name', 'last_name']
    writer = csv.DictWriter(f, fieldnames=fnames)    

    writer.writeheader()
    writer.writerow({'first_name' : 'John', 'last_name': 'Smith'})
    writer.writerow({'first_name' : 'Robert', 'last_name': 'Brown'})
    writer.writerow({'first_name' : 'Julia', 'last_name': 'Griffin'})

该示例使用csv.DictWriter将 Python 词典中的值写入 CSV 文件。

writer = csv.DictWriter(f, fieldnames=fnames) 

创建了新的csv.DictWriter。 标头名称将传递给fieldnames参数。

writer.writeheader()

writeheader()方法将标头写入 CSV 文件。

writer.writerow({'first_name' : 'John', 'last_name': 'Smith'})

Python 字典被写入 CSV 文件中的一行。

$ cat names.csv 
first_name,last_name
John,Smith
Robert,Brown
Julia,Griffin

这是输出。

Python CSV 自定义方言

使用csv.register_dialect()方法创建自定义方言。

custom_dialect.py

#!/usr/bin/python3

import csv

csv.register_dialect("hashes", delimiter="#")

f = open('items3.csv', 'w')

with f:

    writer = csv.writer(f, dialect="hashes")
    writer.writerow(("pens", 4)) 
    writer.writerow(("plates", 2))
    writer.writerow(("bottles", 4))
    writer.writerow(("cups", 1))

该程序使用(# )字符作为分隔符。 使用csv.writer()方法中的dialect选项指定方言。

$ cat items3.csv 
pens#4
plates#2
bottles#4
cups#1

这是输出。

在本教程中,我们使用 Python 处理 CSV。

您可能也会对以下相关教程感兴趣: Python 教程PyMongo 教程Openpyxl 教程Python 列表推导PrettyTable 教程Python simplejson 教程Python 列表推导

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程