Python csv 模块
CSV(Comma-Separated Values)文件是一种常见的文件格式,用于存储表格数据。
CSV 文件由纯文本组成,每一行代表表格中的一行数据,而每一列则通过逗号(或其他分隔符)分隔。
CSV 文件通常用于数据交换,因为它简单且易于处理。
Python 提供了一个内置的 csv 模块,用于读取和写入 CSV 文件。这个模块简化了处理 CSV 文件的过程,使得开发者可以轻松地操作表格数据。
1. 读取 CSV 文件
Section titled “1. 读取 CSV 文件”要读取 CSV 文件,可以使用 csv.reader 对象。以下是一个简单的示例:
open('data.csv', mode='r', encoding='utf-8'):以只读模式打开名为data.csv的文件,并指定编码为 UTF-8。csv.reader(file):创建一个csv.reader对象,用于读取文件内容。for row in csv_reader:逐行读取文件内容,每一行数据会被解析为一个列表。
2. 写入 CSV 文件
Section titled “2. 写入 CSV 文件”要写入 CSV 文件,可以使用 csv.writer 对象。以下是一个示例:
open('output.csv', mode='w', encoding='utf-8', newline=''):以写入模式打开名为output.csv的文件,并指定编码为 UTF-8。newline=''用于避免在 Windows 系统中出现空行。csv.writer(file):创建一个csv.writer对象,用于写入文件内容。csv_writer.writerow(row):将每一行数据写入文件。
3. 使用字典读取和写入 CSV 文件
Section titled “3. 使用字典读取和写入 CSV 文件”csv 模块还提供了 DictReader 和 DictWriter 类,它们可以将 CSV 文件的每一行解析为字典,或者将字典写入 CSV 文件。
使用 DictReader 读取 CSV 文件:
Section titled “使用 DictReader 读取 CSV 文件:”使用 DictWriter 写入 CSV 文件:
Section titled “使用 DictWriter 写入 CSV 文件:”常用的属性和方法
Section titled “常用的属性和方法”csv 模块核心方法
Section titled “csv 模块核心方法”| 方法 | 说明 | 示例 |
|---|---|---|
csv.reader() |
从文件对象读取 CSV 数据 | reader = csv.reader(file) |
csv.writer() |
将数据写入 CSV 文件 | writer = csv.writer(file) |
csv.DictReader() |
将 CSV 行读取为字典(带表头) | dict_reader = csv.DictReader(file) |
csv.DictWriter() |
将字典写入 CSV 文件(需指定字段名) | dict_writer = csv.DictWriter(file, fieldnames) |
csv.register_dialect() |
注册自定义 CSV 格式(如分隔符) | `csv.register_dialect(‘mydialect’, delimiter=’ |
csv.unregister_dialect() |
删除已注册的方言 | csv.unregister_dialect('mydialect') |
csv.list_dialects() |
列出所有已注册的方言 | print(csv.list_dialects()) |
csv.reader 和 csv.writer 对象常用方法
Section titled “csv.reader 和 csv.writer 对象常用方法”| 方法 | 说明 | 适用对象 |
|---|---|---|
__next__() |
迭代读取下一行(或使用 for 循环) |
reader |
writerow(row) |
写入单行数据 | writer |
writerows(rows) |
写入多行数据(列表的列表) | writer |
csv.DictReader 和 csv.DictWriter 对象特性
Section titled “csv.DictReader 和 csv.DictWriter 对象特性”| 特性/方法 | 说明 | 示例 |
|---|---|---|
fieldnames |
字段名列表(DictReader 自动从首行获取) |
dict_reader.fieldnames |
writeheader() |
写入表头行(DictWriter 专用) |
dict_writer.writeheader() |
常用参数说明
Section titled “常用参数说明”| 参数 | 说明 | 示例值 | 适用方法 |
|---|---|---|---|
delimiter |
字段分隔符 | ','(默认), '\t' |
reader/writer |
quotechar |
引用字符(包围特殊字段) | '"'(默认) |
reader/writer |
quoting |
引用规则 | csv.QUOTE_ALL(全部引用) |
reader/writer |
skipinitialspace |
忽略分隔符后的空格 | True/False |
reader |
lineterminator |
行结束符 | '\r\n'(默认) |
writer |
dialect |
预定义的方言名称 | 'excel'(默认) |
所有方法 |
1. 读取 CSV 文件
2. 写入 CSV 文件
3. 使用 DictReader 和 DictWriter(带表头)
4. 自定义方言(如处理 TSV 文件)