Python 标准库-CSV 文件读写

news2024/11/7 12:38:09

目录

【1】读取CSV

【2】字典方式写入

【3】常用自定义


  • csv --- CSV 文件读写 — Python 3.10.11 文档

涉及方法:

  1. csv.DictReader
  2. csv.DictWriter

【1】读取CSV

def readToCsvFile(csv_path, u_delimiter=',', u_doublequote=True):
    read_file = []
    try:
        with open(csv_path, newline='', encoding='utf-8') as csvfile:
            reader = csv.DictReader(csvfile, delimiter=u_delimiter, doublequote=u_doublequote,quotechar="\"")
            for line in reader:
                read_file.append(line)
            return read_file
    except Exception as e:
        logging.error(f'readToCsvFile{csv_path}读取异常,error msg: {e}')
        return f'False,readToCsvFile{csv_path}读取异常'

示例文件:

  1. delimiter

delimiter定义了CSV文件的分割符,默认为“,”,通过自定义设置

如delimiter="|"

可以用来分割|类型的文件

  1. doublequote

此文件使用双引号转义字段中嵌入的双引号字符。 默认情况下,doublequote设置为True。 结果,在读取两个连续的双引号时会被解释为一个。

如果将doublequote设置为False,则连续的双引号将出现在输出中。

  1. quotechar

对于“0,0”中包含”,“的情况,可以使用quotechar="\"" 将”“内的数据作为一个整体,使用‘0,0’则将quotechar="'"即可

示例如上图中

【2】字典方式写入

def saveToCsvFile(csv_path, params, fieldnames,u_delimiter=','):
    try:
        with open(csv_path, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter=u_delimiter)
            writer.writeheader()
            # for line in params:
            writer.writerows(params)
    except Exception as e:
        logging.error(f'saveToCsvFile方法{csv_path}创建异常,error msg: {e}')
        return False
    else:
        return True

当delimiter为“|”时,doublequote与读取时配置一致

【3】常用自定义

参数

默认值

描述

delimiter

,

它是指用于分隔 CSV 文件中的值(或字段)的字符。

skipinitialspace

False

它控制定界符后面的空格的解释方式。 如果为True,则将删除初始空格。

lineterminator

\r\n

它是指用于终止行的字符序列。

quotechar

"

它指的是如果字段中出现特殊字符(如定界符),则将用于引用值的单个字符串。

quoting

csv.QUOTE_NONE

控制引号由作者生成或由读者识别的时间(其他选项请参见上文)。

escapechar

None

引用设置为引号时,它用于转义定界符的一字符字符串。

doublequote

True

控制字段内引号的处理。 当True时,在读取期间将两个连续的引号解释为一个,而在写入时,将嵌入数据中的每个引号字符写入为两个引号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络23年6月期末复习【更新】

计算机网络23年6月期末复习 题型分布 循环冗余码(CRC校验码)子网划分IP数据报分片滑动窗口拥塞避免和快速重传TCP三次握手和四次握手路由选择(更新路由表)1.(简答题)网络体系结构为什么要采用分层次的结构&…

签约新闻 | 南方传媒携手AMT企源开启各项管理优化工作

南方出版传媒股份公司(本文简称“南方传媒”)成立于2009年,2016年在上交所挂牌上市,是广东省文化产业第一股、广东文化产业龙头企业、中国出版业重要力量。 在数字化发展浪潮下,为支撑业务数字化转型变革,…

FreeBSD 开源操作系统 30周年纪念特刊

FreeBSD是一种类UNIX操作系统,是经由 BSD、386BSD 和 4.4BSD 发展而来的Unix的一个重要分支。由一些原来 BSD UNIX 的开发者后来转到 FreeBSD 的开发,使得 FreeBSD 在内部结构和系统 API 上和 UNIX 有很大的兼容性。FreeBSD 是开源Free。 FreeBSD 项目庆…

车间现场管理难!车间主管如何掌握管理进阶?

车间是企业的基本层,搞好车间现场管理,有利于企业增强竞争力,提高产品质量和员工素质,保证安全生产,而车间班组长是生产线的主要管理者,是直接“当家人”,对生产现场状况了如指掌,对…

边缘智能:边缘计算驱动实时深度学习

边缘智能 作为人工智能领域的当红炸子鸡,深度学习技术近年来得到了学术界与产业界的大力追捧。目前,深度学习技术已在计算机视觉、自然语言处理以及语音识别等领域大放异彩,相关产品正如雨后春笋般涌现。由于深度学习模型需要进行大量的计算…

【VulnHub系列】DC4

因为是从PDF转换过来偶尔可能会出现内容缺少,可以看原版PDF:有道云笔记 实验环境 Kali:192.168.10.102 MyFileServer:192.168.10.106 实验过程 通过arp-scan来发现靶机的IP地址 sudo arp-scan --interface eth0 192.168.10.1…

【Flutter】Flutter 状态管理 Provider 包使用概述

文章目录 一、 前言二、 Provider 包简介三、 安装 Provider 包四、 Provider 包的基本使用五、 示例代码:一个简单的状态管理实例六、 版本信息七、 总结 一、 前言 🎉想要精通 Flutter,掌握更多技巧和最佳实践?好消息来了&…

layui时间控件单击双击改变状态

文章目录 1️⃣ layui单击隐藏弹出的时间窗2️⃣ layui双击隐藏弹出的时间窗2.1 找到官方的插件2.2 改变引用,加上change函数 优质资源分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418 layui时间控件单击双击改变状态&…

计算机的工作过程和主要性能指标

一、计算机的工作过程 为使计算机按预定要求工作,首先要编制程序。 程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。 指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。 编制好的程序放在主存中…

【030】C++类和对象之友元(friend)详解

C类和对象之友元(friend)详解 引言一、友元概述二、友元的语法三、友元的应用举例3.1、普通全局函数作为类的友元3.2、类的某个成员函数作为另一个类的友元3.3、整个类作为另一个类的友元 四、友元的注意事项五、友元案例总结 引言 💡 作者简…

大数值使用BitSet存储导致的内存溢出

背景: 在日常的工作中,使用Redis的bitmap统计每天的登录用户数,使用java的BitSet进行统计总数或者与或非等操作时,我们可以看到BitSet/Redis的Bitmap操作的身影,他们也的确能减少内存的使用量以及操作的性能&#xff…

[HTML/CSS/JS]作品案例--笔记1

一、头部导航栏代码 html代码 <!-- 第一部分 导航栏 登录 注册 卡片点击 切换 --><div class"nav-containers"><ul class"ul-one"><li class"li-one color-white">首页</li><li class"li-one"&g…

下峰锁定,行情未尽,筹码峰真的不会骗人吗?

在学习筹码分布的时候&#xff0c;经常可以看到这样的顺口溜&#xff1a;“上峰不死&#xff0c;下跌不止&#xff1b;下峰锁定&#xff0c;行情未尽”。简单解释一下就是&#xff1a;下跌行情中&#xff0c;如果上密集峰未被充分消耗&#xff0c;那么就没有新的行情产生&#…

【Unity3D】雾效

1 前言 屏幕深度和法线纹理简介中对深度和法线纹理的来源、使用及推导过程进行了讲解&#xff0c;激光雷达特效中讲述了一种重构屏幕像素点世界坐标的方法&#xff0c;本文将介绍使用深度纹理重构屏幕像素点在相机坐标系下的坐标计算方法&#xff0c;并使用重构后的坐标模拟雾…

EventBus

EventBus 文章目录 EventBus1.EventBus的作用2.关于EventBus的概述3.EventBus的使用方法4.EventBus的黏性事件5.EventBus的源码EventBus的构造方法getDefault()源码EventBus()源码 订阅者注册register()源码findSubscriberMethods()源码findUsingInfo()源码findUsingReflection…

TCP的三次握手与四次挥手

TCP的三次握手与四次挥手 1.网络分层 网络分层代表硬件协议/技术特性应用层HTTP,DNS,FTP,SMTP,Telnet协议等应用程序实现的,规定应用程序的数据格式传输层TCP/UDP协议负责两主机之间的数据正确传输主机系统内核实现的网络层路由器IP协议负责地址管理和路由选择(确定对应主机)…

合宙Air724UG Cat.1模块硬件设计指南--SDIO接口

SDIO接口 简介 SDIO(Secure Digital Input and Output)全称为安全数字输入输出接口&#xff0c;在协议上和SPI类似是一种串行的硬件接口&#xff0c;通信的双方一个作为HOST&#xff0c;另一端是Device&#xff0c;所有的通信都是由HOST端发送命令开始的&#xff0c;Device端只…

SpringCloud Alibaba入门3之nacos服务搭建

在前一章的基础上开发:SpringCloud Alibaba入门之用户子模块开发_qinxun2008081的博客-CSDN博客 一、下载nacos-server 从https://github.com/alibaba/nacos/releasesopen in new window 下载nacos-server发行版。 二、启动nacos 进入%path%\nacos\bin文件夹,执行cmd命令st…

阿里组织变革新阶段:蓄力拉弓,一箭向前

自3月28日宣布“16N”分拆、5月18日宣布分业务启动独立融资或上市计划以来&#xff0c;阿里持续推动着这场史无前例的组织变革落地&#xff0c;谋求更高质量发展。 6月20日&#xff0c;阿里巴巴控股集团董事会主席兼CEO张勇通过全员信宣布&#xff0c;他将于今年9月10日卸任现…

[进阶]网络通信:端口和协议

端口 标记正在计算机设备上运行的应用程序的&#xff0c;被规定为一个 16位的二进制&#xff0c;范围是 0~65535。 分类 周知端口&#xff1a;0~1023&#xff0c;被预先定义的知名应用占用&#xff08;如&#xff1a;HTTP占用 80&#xff0c;FTP占用21&#xff09;注册端口&…