Python 标准库-CSV 文件读写

news/2024/11/22 19:45:43/

目录

【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_fileexcept 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 Falseelse: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.ppmy.cn/news/505754.html

相关文章

最新计算机top500,最新超级计算机TOP500榜单出炉

6月23日,在德国汉堡举行的ISC09大会上公布了最新第33期TOP500的榜单。 TOP500榜单云集了全球最强大的超级计算机,这一次的榜单依然由IBM的Roadrunner和Cray的Jaguar领军,另外前十名中的两席来自德国的超级计算机。这次的榜单中还出现了一个新…

PCB设计系列分享-LDO的布局布线指南

目录 概要 整体架构流程 技术名词解释 技术细节 小结 概要 “噪声问题” 这是每位电路板设计师都会听到的四个字。为了解决噪声问题,往往要花费数小时的时间进行实验室测试.以便揪出元凶,但最终却发现,噪声是由开关电源的布局不当…

c++lambda函数笔记

1、labmda函数用途: 用于简短功能函数的定义,并传递到std算法中。 2、一般函数与lambda函数比较示例 3、如何定义lambda 如下为lambda通用定义式子: [capture] (params) opt->ret{body;}; capture——捕获列表,[]为不捕获变量…

linux下的oracle10g,linux下oracle10g的安装

Linux下Oracle10g的安装 安装环境: CPU:赛扬2.4G 硬盘:西捷80G 内存:HY 1G(两条) 操作系统:RedFlag DC 4.1 数据库:Oracle 10g Release1文件名:ship.db.cpio.gz 下载地址: http://www.oracle.co…

学生党可以做的暑期兼职,让暑假生活不再躺平

夏季期间有几种兼职工作可供选择: 1.许多超市在暑假期间会雇佣一些短期工来从事收银和理货等工作,每小时报酬一般约为15元左右,算是不错的待遇。 2.在暑假期间,你可以寻找一些人力资源工作,借助他们的帮助来安排一些临…

P2920 [USACO08NOV]Time Management S

难度:3 知识点:贪心 这道题的分类在二分里面,实际上就是一个裸的贪心,贪心的策略就是按照结束时间排序,从大到小排那么就从前往后遍历,记录答案即可,因为同一个时间里面只能完成一个工作&#…

power oj 2920: 第K大1.0 优先队列

题目链接 题意是在一组数组里面,对每一个数求它右边的最大值。 题解:我们把可以不断将数字都放进一个优先队列里面,做一个在线操作:对于每一次放入a[i]的数,通过比较将队列前面比他小的所有数字弹出,记录这…

Luogu P2920 时间管理【二分答案】

二分答案水题。 (像我这么蒻的人都能十几分钟A掉) https://www.luogu.org/problemnew/show/P2920 开始时间一定在从0到min(t[i]-s[i])的一段区间上,因此我们可以愉快地二分答案。 在二分答案之前,我们贪心地把结束时间从小到大排一…