Python csv 模块

Python csv 模块

Python csv 模块

CSV(Comma-Separated Values)文件是一种常见的文件格式,用于存储表格数据。

CSV 文件由纯文本组成,每一行代表表格中的一行数据,而每一列则通过逗号(或其他分隔符)分隔。

CSV 文件通常用于数据交换,因为它简单且易于处理。

Python 提供了一个内置的 csv 模块,用于读取和写入 CSV 文件。这个模块简化了处理 CSV 文件的过程,使得开发者可以轻松地操作表格数据。

1. 读取 CSV 文件

要读取 CSV 文件,可以使用 csv.reader 对象。以下是一个简单的示例:

实例

import csv

# 打开 CSV 文件

with open('data.csv', mode='r', encoding='utf-8') as file:

# 创建 csv.reader 对象

csv_reader = csv.reader(file)

# 逐行读取数据

for row in csv_reader:

print(row)

代码解释:

open('data.csv', mode='r', encoding='utf-8'):以只读模式打开名为 data.csv 的文件,并指定编码为 UTF-8。

csv.reader(file):创建一个 csv.reader 对象,用于读取文件内容。

for row in csv_reader:逐行读取文件内容,每一行数据会被解析为一个列表。

2. 写入 CSV 文件

要写入 CSV 文件,可以使用 csv.writer 对象。以下是一个示例:

实例

import csv

# 要写入的数据

data = [

['Name', 'Age', 'City'],

['Alice', '30', 'New York'],

['Bob', '25', 'Los Angeles']

]

# 打开 CSV 文件

with open('output.csv', mode='w', encoding='utf-8', newline='') as file:

# 创建 csv.writer 对象

csv_writer = csv.writer(file)

# 写入数据

for row in data:

csv_writer.writerow(row)

代码解释:

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 文件

csv 模块还提供了 DictReader 和 DictWriter 类,它们可以将 CSV 文件的每一行解析为字典,或者将字典写入 CSV 文件。

使用 DictReader 读取 CSV 文件:

实例

import csv

with open('data.csv', mode='r', encoding='utf-8') as file:

csv_dict_reader = csv.DictReader(file)

for row in csv_dict_reader:

print(row)

使用 DictWriter 写入 CSV 文件:

实例

import csv

data = [

{'Name': 'Alice', 'Age': '30', 'City': 'New York'},

{'Name': 'Bob', 'Age': '25', 'City': 'Los Angeles'}

]

with open('output.csv', mode='w', encoding='utf-8', newline='') as file:

fieldnames = ['Name', 'Age', 'City']

csv_dict_writer = csv.DictWriter(file, fieldnames=fieldnames)

# 写入表头

csv_dict_writer.writeheader()

# 写入数据

for row in data:

csv_dict_writer.writerow(row)

常用的属性和方法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 对象常用方法方法说明适用对象__next__()迭代读取下一行(或使用 for 循环)readerwriterow(row)写入单行数据writerwriterows(rows)写入多行数据(列表的列表)writer

csv.DictReader 和 csv.DictWriter 对象特性特性/方法说明示例fieldnames字段名列表(DictReader 自动从首行获取)dict_reader.fieldnameswriteheader()写入表头行(DictWriter 专用)dict_writer.writeheader()

常用参数说明

参数说明示例值适用方法delimiter字段分隔符','(默认), '\t'reader/writerquotechar引用字符(包围特殊字段)'"'(默认)reader/writerquoting引用规则csv.QUOTE_ALL(全部引用)reader/writerskipinitialspace忽略分隔符后的空格True/Falsereaderlineterminator行结束符'\r\n'(默认)writerdialect预定义的方言名称'excel'(默认)所有方法

实例

1. 读取 CSV 文件

实例

import csv

with open('data.csv', 'r') as file:

reader = csv.reader(file, delimiter=',')

for row in reader:

print(row) # 每行是一个列表

2. 写入 CSV 文件

实例

data = [['Name', 'Age'], ['Alice', 25], ['Bob', 30]]

with open('output.csv', 'w', newline='') as file:

writer = csv.writer(file)

writer.writerows(data) # 写入多行

3. 使用 DictReader 和 DictWriter(带表头)

实例

# 读取

with open('data.csv', 'r') as file:

dict_reader = csv.DictReader(file)

for row in dict_reader:

print(row['Name'], row['Age']) # 通过字段名访问

# 写入

fieldnames = ['Name', 'Age']

with open('output.csv', 'w', newline='') as file:

dict_writer = csv.DictWriter(file, fieldnames=fieldnames)

dict_writer.writeheader() # 写入表头

dict_writer.writerow({'Name': 'Alice', 'Age': 25})

4. 自定义方言(如处理 TSV 文件)

实例

csv.register_dialect('tsv', delimiter='\t', quoting=csv.QUOTE_NONE)

with open('data.tsv', 'r') as file:

reader = csv.reader(file, dialect='tsv')

for row in reader:

print(row)

相关数据

山上之人
best365手机官方

山上之人

⌛ 07-30 👁️‍🗨️ 658
《问道》游戏资料之道具套餐卡
best365手机官方

《问道》游戏资料之道具套餐卡

⌛ 08-03 👁️‍🗨️ 6126
如何制作水印:简单步骤与实用技巧详解
mobile.allsport365

如何制作水印:简单步骤与实用技巧详解

⌛ 10-12 👁️‍🗨️ 8886