
使用csv.reader读取数据
| import csv |
| |
| |
| with open("data.csv", mode="r", encoding="utf-8-sig") as f: |
| |
| |
| reader = csv.reader(f) |
| |
| |
| |
| |
| |
| |
| header = next(reader) |
| |
| |
| for row in reader: |
| print("{}{}: {}={}, {}={}, {}={}".format(header[0], row[0], |
| header[1], row[1], |
| header[2], row[2], |
| header[3], row[3])) |
使用csv.DictReader读取数据
| import csv |
| |
| |
| with open("data.csv", encoding="utf-8-sig", mode="r") as f: |
| |
| |
| reader = csv.DictReader(f) |
| |
| |
| for row in reader: |
| print("设备编号{}: 温度={}, 湿度={}, 转速={}".format(row["设备编号"], |
| row["温度"], |
| row["湿度"], |
| row["转速"])) |
写入csv文件
使用csv.writer写入数据
| # 导入 csv 库 |
| import csv |
| |
| # 创建列表,保存header内容 |
| header_list = ["设备编号", "温度", "湿度", "转速"] |
| |
| # 创建列表,保存数据 |
| data_list = [ |
| [0, 31, 20, 1000], |
| [1, 30, 22, 998], |
| [2, 32, 33, 1005] |
| ] |
| |
| # 以写方式打开文件。注意添加 newline="",否则会在两行数据之间都插入一行空白。 |
| with open("new_data.csv", mode="w", encoding="utf-8-sig", newline="") as f: |
| |
| # 基于打开的文件,创建 csv.writer 实例 |
| writer = csv.writer(f) |
| |
| # 写入 header。 |
| # writerow() 一次只能写入一行。 |
| writer.writerow(header_list) |
| |
| # 写入数据。 |
| # writerows() 一次写入多行。 |
| writer.writerows(data_list) |
使用csv.DictWriter写入数据
| |
| import csv |
| |
| |
| header_list = ["设备编号", "温度", "湿度", "转速"] |
| |
| |
| data_list = [ |
| {"设备编号": "0", "温度": 31, "湿度": 20, "转速": 1000}, |
| {"设备编号": "1", "温度": 30, "湿度": 22, "转速": 998}, |
| {"设备编号": "2", "温度": 32, "湿度": 23, "转速": 1005}, |
| ] |
| |
| |
| with open("new_data.csv", mode="w", encoding="utf-8-sig", newline="") as f: |
| |
| |
| writer = csv.DictWriter(f, header_list) |
| |
| |
| writer.writeheader() |
| |
| |
| writer.writerows(data_list) |
关于写入,需要注意:
在打开文件时,需要添加newline = ""。否则,会在每2行有效内容之间添加一行空白。
如果要保存的内容有中文,而且之后需要用Excel打开文件,那么需要选用utf-8-sig编码。如果使用utf-8编码,会导致使用Excel查看文件时中文乱码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?