[Python进阶] Python操作csv文件:csv
7.4 Python操作csv文件:csv
7.4.1 csv文件介绍
CSV文件是一种逗号分隔值格式的文件,通常用于存储和交换电子表格或数据库软件中的数据。它是一种纯文本格式的文件,可以方便地用各种办公软件打开和编辑。
在CSV文件中,数据以某种换行符分隔,每条记录由字段组成,字段间的分隔符是逗号或者其他字符或字符串。一些CSV文件还包含列名,通常居文件第一行。
CSV文件的规则包括:
- 开头不留空,以行为单位。
- 可含或不含列名,含列名则居文件第一行。
- 一行数据不垮行,无空行。
- 以半角符号,作分隔符,列为空也要表达其存在。
- 列内容如存在,则用引号包含起来。
- 列内容如存在引号,则用两个连续引号包含。
- 文件读写时引号、逗号操作规则互逆。
- 内码格式不限,可为ASCII、Unicode或者其他。
CSV文件通常用Excel等电子表格软件打开,也可以用各种编程语言和数据科学工具进行分析和可视化。通过合理地组织和格式化数据,CSV文件可以有效地存储和分享各种类型的数据。
7.4.2 通过Python自带的csv库操作csv文件
在Python中,你可以使用内置的 csv 模块来读取和写入CSV文件。以下是一些基本的操作:
读取CSV文件
import csv
with open('file.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
在这个例子中,csv.reader 返回一个读取器对象,你可以迭代这个对象来逐行读取CSV文件。每一行都以列表的形式返回,列表中的每个元素都是字符串类型。
写入CSV文件
import csv
rows = [['Name', 'Age'], ['Bob', '23'], ['Alice', '24']]
with open('file.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
在这个例子中,csv.writer 返回一个写入器对象,你可以使用 writerow 方法将每一行写入CSV文件。注意,如果你不在 open 函数中设置 newline=‘’,可能会在Windows下遇到额外的空行问题。
7.4.3 使用DictReader和DictWriter操作csv文件
除了上述的方式,Python的csv模块还提供了DictReader和DictWriter,可以方便地将CSV文件和字典进行转换。例如:
读取CSV文件到字典
import csv
with open('file.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
在这个例子中,csv.DictReader 返回一个读取器对象,你可以迭代这个对象来逐行读取CSV文件。每一行都以字典的形式返回,字典的键是列名,值是对应的数据。
将字典写入CSV文件
import csv
rows = [{'Name': 'Bob', 'Age': '23'}, {'Name': 'Alice', 'Age': '24'}]
with open('file.csv', 'w', newline='') as f:
fieldnames = ['Name', 'Age'] # 列名
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader() # 写入列名
for row in rows:
writer.writerow(row) # 写入数据行
在这个例子中,csv.DictWriter 返回一个写入器对象,你可以使用 writeheader 方法写入列名,然后使用 writerow 方法将每一行数据写入CSV文件。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!