前言
在Python编程中,经常会遇到要将数据存到csv文件中,今天来详细讲一下。
一.功能目的
将以下数据存到csv文件中。
data = [ {'name': 'Alice', 'age': 25, 'city': 'New York'}, {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}
]
二.功能调研
根据搜索引擎,我们可以提取到以下信息:
1.写入文件
with open
函数在 Python 中用于打开一个文件,并返回一个文件对象。这个函数通常与 as
关键字一起使用,以便将文件对象赋值给一个变量,从而可以对其进行操作。使用 with
语句的一个主要优点是它会自动管理文件的打开和关闭,即使在处理文件时发生异常也是如此。
代码示例如下:
# 定义要写入的数据
data = "Hello, world!" # 使用 with open 打开文件,如果文件不存在,则创建它
# 'w' 模式表示写入,会覆盖文件中的任何现有内容
with open('example.txt', 'w', encoding='utf-8') as file: # 写入数据到文件 file.write(data) # with 语句块结束后,文件会自动关闭
print("数据已写入 example.txt")
在这个例子中,open 函数接收三个参数:
文件名 ('example.txt'):要打开或创建的文件的名称。
模式 ('w'):打开文件的模式。'w' 表示写入模式,会覆盖文件中的任何现有内容。如果要追加内容到文件末尾而不是覆盖它,可以使用 'a' 模式。其他常见的模式包括 'r'(读取)和 'x'(如果文件已存在则失败)。
encoding ('utf-8'):指定文件的字符编码。UTF-8 是一种常用的编码方式,它支持国际字符集。
as 关键字后面的 file 是一个变量,它引用了打开的文件对象。
在这个 with 语句块内部,你可以通过 file 变量来执行文件操作,比如读取或写入数据。
当 with 语句块执行完毕后,Python 会自动关闭文件,即使发生异常也是如此。
2.csv.DictWriter类
csv.DictWriter 类是 Python 的 csv 模块中的一个功能,它允许你以字典的形式将数据写入 CSV 文件。
下面是 csv.DictWriter 类的一些基本用法和特性:
初始化
当你创建 csv.DictWriter 对象时,你需要传递两个主要的参数:一个文件对象和一个字段名列表。文件对象通常是通过 open() 函数创建的,而字段名列表则定义了 CSV 文件的列标题。
import csv # 打开一个文件以写入,并创建一个 csv.DictWriter 对象
with open('example.csv', 'w', newline='') as csvfile: fieldnames = ['name', 'age', 'city'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
写数据
csv.DictWriter 类提供了几个方法来帮助你写入数据:
writeheader():这个方法将字段名(即列标题)写入 CSV 文件的第一行。
writerow(row_dict):此方法将单个字典(row_dict)作为一行写入 CSV 文件。字典的键对应于字段名,而值则是实际写入的数据。
writerows(row_dicts):此方法接受一个字典列表(row_dicts),并将每个字典作为一行写入 CSV 文件。
注意,writerow() 和 writerows() 方法只写入值,不写入键。键(即字段名)是在调用 writeheader() 方法时写入的,或者在创建 csv.DictWriter 对象通过 fieldnames 参数指定的。
我们可以根据以上方法来达到我们的目的。
三.编写代码
1.代码示例
代码如下(示例):
import csv # 准备数据
data = [ {'name': 'Alice', 'age': 25, 'city': 'New York'}, {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}
] # 定义CSV文件的路径
csv_file_path = 'output.csv' # 打开文件并创建CSV写入器
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile: fieldnames = ['name', 'age', 'city'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 写入数据 writer.writeheader() writer.writerows(data) print(f"数据已写入 {csv_file_path}")
2.结果如下
运行这段代码,就可以得到以下结果:
总结
本文主要讲了使用with open函数和csv.DictWriter类来将数据写入csv。
后续会持续更新,欢迎关注!