菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

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 模块还提供了 DictReaderDictWriter 类,它们可以将 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 循环)reader
writerow(row)写入单行数据writer
writerows(rows)写入多行数据(列表的列表)writer

csv.DictReader 和 csv.DictWriter 对象特性

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

常用参数说明

参数说明示例值适用方法
delimiter字段分隔符','(默认), '\t'reader/writer
quotechar引用字符(包围特殊字段)'"'(默认)reader/writer
quoting引用规则csv.QUOTE_ALL(全部引用)reader/writer
skipinitialspace忽略分隔符后的空格True/Falsereader
lineterminator行结束符'\r\n'(默认)writer
dialect预定义的方言名称'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)
AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /