储存模块之CSV

简介: 储存模块之CSV

csv模块也是一个python的内置模块,该模块处理的是csv文件的读取和存档


csv模块中的reader类和writer类可用于读写序列化的数据。也可使用DictReader类和DictWriter类以字典的形式读写数据。这个我们仅使用后面两个类


csv.rader(fq)


该函数读取文件csv文件,fq为csv文件对象,返回的是一个reader对象(迭代器),具体用法如下:

import csv
# 读取csv文件
with open("1.csv", "r") as f:
    text = csv.reader(f) # 返回的是一个迭代器,每次迭代的一行内容
    next(text) # 去掉第一行
    for data in text:
        print(data)

csv.writer(fq)

该函数用于往csv文件写入数据,fq是一个csv文件对象(该文件打开时一定要加上newline="",不然数据会出现空行,该函数返回的是一个writer对象,该对象负责将传入数据写入csv文件(函数writerow()和函数writerows()),写入的数据应该是数组或列表类型的

import csv
header = ["name", "age", "sex"]
data = [["python", "21", "man"], ["java", "30", "man"]]
# 写scv文件
with open("1.csv", "w", newline="", encoding="utf8") as f1:
    writer = csv.writer(f1)
    writer.writerow(header)
    writer.writerows(data)

csv.DictReader(fp)

fp是一个csv文件对象,该函数返回的是一个DictReader对象(迭代器),且是字典类型

import csv
with open("1.csv", "r") as f:
    reader = csv.DictReader(f)
    for data in reader:
        print(data)

csv.DictWriter(fq,headers)

fq是一个csv文件对象,headers是一个数组或列表(csv文件的头),该函数返回的是一个DictWriter对象,该对象在操作上类似常规 writer,但会将字典映射到输出行

import csv
headers = ["name", "age", "sex"]
dict_data = [
    {"name": "lili", "age": "1", "sex": "man"}, 
    {"name": "haha", "age": "2", "sex": "man"},
    {"name": "wawa", "age": "4", "sex": "woman"}
]
with open("2.csv", "w", newline="", encoding="utf8") as f:
    writer = csv.DictWriter(f, headers)
    writer.writeheader()
    writer.writerows(dict_data)


目录
相关文章
|
安全 关系型数据库 MySQL
Linux 实用小脚本系列(2)----mysql安全初始化脚本的免交互执行--mysql_secure_installation
Linux 实用小脚本系列(2)----mysql安全初始化脚本的免交互执行--mysql_secure_installation
394 0
|
存储 数据采集 数据可视化
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
16497 1
Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
|
监控 网络协议 JavaScript
WebSocket技术详解与应用指南
WebSocket是全双工TCP协议,解决HTTP的单向通信问题,允许服务器主动推送信息。本文档介绍了WebSocket的基本概念、工作原理(基于HTTP握手,通过帧进行数据通信)、应用场景(实时聊天、在线游戏、数据监控等)和实现方法(客户端使用JavaScript API,服务器端有多种编程语言库支持)。学习WebSocket能提升Web应用的实时性和交互性。
2056 1
位宽计算的系统函数$clog2,这些是你需要知道的【Verilog高级教程】
位宽计算的系统函数$clog2,这些是你需要知道的【Verilog高级教程】
位宽计算的系统函数$clog2,这些是你需要知道的【Verilog高级教程】
|
Android开发
Android Wifi和蓝牙操作(二)
Android Wifi和蓝牙操作(二)
394 0
|
Web App开发 JavaScript 前端开发
VS Code 必备插件推荐
插件 说明 备注 Auto Close Tag 自动添加HTML / XML关闭标签 Auto Rename Tag 自动重命名配对的HTML / XML标签 Beautify 格式化代码 Brack...
4324 0
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1273 5
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1289 87