Python基础 - csv文件格式
python基础 - csv文件格式
csv(Comma Separated Values)格式是最通用的电子表格和数据库的导入导出格式,csv模块可以用来处理带分隔符的数据文件,是Python“功能齐备”理念的完美案例。csv模块中的reader和writer对象用来读写序列,也可以使用DictReader和DictWriter类在字典中读写数据。
- csv模块中定义的函数
csv.reader(csvfile, dialect=‘excel’, **fmtparams)
返回一个可以遍历csv文件的reader对象。dialect参数可以用于定义一组特定的csv方言参数,是Dialect类的子类或者list_dialects()函数返回的字符串。从csv文件读取的每一行都作为字符串列表返回。除非指定了QUOTE_NONNUMERIC格式选项(在这种情况下,未加引号的字段将转换为浮点数),否则不会执行自动的数据类型转换。
Reader对象
Reader对象包括DictReader实例和通过reader()函数获得的对象有以下通用方法:
csvreader.__next__()
:将读取器可迭代对象的下一行作为列表返回,根据当前方言进行解析。通常调用next(reader)。
Reader对象有以下通用属性:
csvreader.dialect
:当前解析器使用的方言;
csvreader.line_num
:从源迭代器读取的行数。这与返回的记录数不同,因为记录可以跨越多行。
csvreader.fieldnames
:如果在创建对象时没有作为参数传递,则在第一次访问或从文件中读取第一个记录时初始化此属性。
- Writer对象
Writer对象包括DictWriter实例和writer()方法获得的对象有以下通用方法,对于Writer对象,一行必须是一个字符串或数字的可迭代对象,对于DictWriter对象,一行必须是一个将字段名映射到字符串或数字的字典。注意复数是用括号括起来的。
csvwriter.writerow(row)
:将row参数写入写入器的文件对象,根据当前方言进行格式化。
csvwriter.writerows(rows)
:将所有的行参数写入写入器的文件对象,并根据当前方言进行格式化。
方言和格式化参数
Dialects支持以下属性:
Dialect.delimiter
:一个用来分隔字段的单字符字符串,默认是逗号。
Dialect.doublequote
:控制引号在字段中出现的实例本身如何被引用。
Dialect.escapechar
:如果引号设置为QUOTE_NONE,则用于转义分隔符;如果双引号设置为False,则用于转义quotechar。
Dialect_quotechar
:一个字符串,用于引用包含特殊字符的字段,如分隔符或引号,或包含换行字符。默认为“”。
- 案例
(1)读取一个csv文件
import csv
with open('demo.csv', newline='') as f:reader = csv.reader(f)for row in reader:print(row)# 读取csv使用可选的格式,使用默认的utf-8编码
with open('passwd', newline='', encoding='utf-8') as f:reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)for row in reader:print(row)
(2)数据写入csv文件
import csv
# 如果不指定newline='',嵌在引号字段中的换行符将无法被正确解释,并且在使用\r\n行结尾的平台上写入时会添加额外的\r。
with open('demo.csv', 'w', newline='') as f:writer = csv.writer(f)writer.writerows(['one, two, three'])
(3)注册新的方言
import csv
csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)
with open('passwd', newline='') as f:reader = csv.reader(f, 'unixpwd')
(4)捕获错误
import csv, sys
filename = 'demo.csv'
with open(filename, newline='') as f:reader = csv.reader(f)try:for row in reader:print(row)except csv.Error as e:sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e))
Python基础 - csv文件格式相关推荐
- Python基础——csv文件处理及可视化
csv文件处理及可视化 (1)csv文件格式:要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号( , )分隔的值写入文件[形式:数据之间用,号隔开] #例如:2014-1-5,61,44, ...
- Python基础——csv文件中某列数据替换为数字
csv文件中某列数据替换为数字 来源--机器学习读取数据 方法一:正则表达式,replace() import pandas as pd data = pd.read_csv("data2. ...
- python之CSV文件格式
1.csv文件是以一些以逗号分隔的值 import csv filename = "wenjian.csv" with open(filename) as f:reader = c ...
- Python 基础 CSV文件的操作
1.CSV文件的打开 CSV文件可以使用open命令打开,但是一定要用close命令关闭. 也可以用with语句打开,操作结束后,自动关闭. with open(文件路径字符串,模式字符) as 文件 ...
- Python基础-day01
写在前面 先后接触过很多编程语言,最喜欢的就是C和Python,相比其他语言,C 是神器,优点太多了:个人而言,C 最重要的一点就是能够让你在敲代码的时候是以一个计算机科学家的角度去思考,而不是仅仅停 ...
- Python习题解答:将学生的各科考试成绩保存为csv文件格式
习题解答:将学生的各科考试成绩保存为csv文件格式 1.题目要求 将学生的各科考试成绩保存为csv文件格式. 2.设计要求 (1)已知学生的学号和各科成绩: data = [['99100', 90, ...
- Python 数据可视化—下载数据(CSV文件格式、JSON格式)
Python 数据可视化-下载数据CSV文件格式.JSON格式 网上下载数据,并对这些数据进行可视化,可视化以两种常见格式存储的数据:CSV 和JSON. 我们将使用Python模块csv 来处理以C ...
- python 批量把xls,csv文件格式换转为xlsx格式
目录 前言 第一版 文件夹下所有xls转换为xlsx格式 第二版 文件夹下所有csv转换为xlsx格式 第三版 增加窗口组件,csv,xls转化为xlsx 总结 前言 西瓜WiFi初来乍到,数据清洗入 ...
- python基础个人总结
1.Python的可变与不可变 不可变类型:数字.字符.元组(一旦改变,变量所指向的地址发生变化)可变类型:列表.字典.集合(在地址块内部进行修改,变量指向的地址不发生变化) 2.装饰器: def f ...
最新文章
- “AI独角兽”半年巨亏52亿 旷视科技的IPO之路会好走吗?
- Spring注解@Value获取属性文件值且解决在controller无法获取到值的问题
- why I cannot set SAP UI5 dropdown list as not selected
- flink streamGraph生成
- Hibernate many-to-many
- 7.让网站支持http和https的访问方式
- cadence 常见pcb电阻_不加端接电阻的快乐,你们绝对想象不到!
- STC单片机串口输出ADXL335角度值
- easypr4android,EasyPR的基本使用
- android 常用模块,超实用的几款Xposed模块,安卓发烧必备
- 说的特别好的一句话,送给每一个热爱编程的人
- C++入门:让计算机“开口说话”
- 最小覆盖圆(smallest enclosing circle)算法 python 实现
- ubuntu16.04+gtx1050驱动安装记录
- 鲁大师便捷查看硬盘参数
- 简单实用:可以祛斑的食物 - 生活至上,美容至尚!
- linux,ubuntu下软件的更新命令
- STM32+果云GA6-GPRS/GSM模块+MQTT+HTTP协议连接中移OneNet上传GPS数据定位
- Proxmox VE 6.0管理指南——8. Proxmox VE存储
- 怎么设置计算机网络打印机共享,打印机共享怎么设置 手把手教你打印机共享的设置方法【图解】-太平洋电脑网PConline_教你学电脑_太平洋电脑网PConline...
热门文章
- datagrip连接虚拟机的hive数据库
- linux入门教程(3)(转)
- SNMP OID Reference - NetScaler 10
- B站左程云算法视频高级班01
- 面向特定问题的开源算法管理和推荐(十五)
- 音频特征提取工具librosa
- UG中批量导出点坐标等信息
- Matlab 警告: The CUDA driver must recompile the GPU libraries because your device is more recent than
- 动态壁纸安卓_抖音上超火的时间轮盘动态壁纸,安卓苹果都可以设置!个性好看...
- questmobile2020年app排行榜_2020年 中国手机App用户量排行榜top100