python数据处理
发布日期:2021-10-31 07:31:31
浏览次数:13
分类:技术文章
本文共 1644 字,大约阅读时间需要 5 分钟。
csv数据处理
csv表示”Comma-Separated Values(逗号分隔的值)”,csv文件时简化的电子表格,保存为纯文本文件。
python中解析csv文件可以使用csv模块。
- 注意:csv是文本文件,通过打开文件的操作,将其内容读入一个字符串,然后通过字符串的split()方法处理每行文本取得值。需要注意csv文件中也有自己的转义字符,允许逗号或者其他字符作为值的一部分,split()方法无法处理这部分转义字符。所以处理csv文件时为避免这些潜在的问题,建议使用csv模块处理csv文件。
Reader
使用csv模块从csv文件中读取数据,需要创建一个Reader对象,可以通过Reader对象迭代遍历csv文件中的每一行。
import csvwith open("example.csv", encoding='utf-8') as dataObject: dataReader = csv.reader(dataObject) for row in dataReader: print("第{0}行:{1}".format(dataReader.line_num, row))Reader对象的line_num变量是当前的行号。输出结果第1行:['2018/06/09', 'Apples', '73']第2行:['2018/06/10', 'Cherries', '85']第3行:['2018/06/11', 'Pears', '14']
Writer
Write对象可以将数据写入到csv文件中。
首先调用open()并传入w,以写模式打开一个文件。这时会创建一个对象。 然后将创建的对象传递给csv.writer(),创建一个Writer对象。 接下来调用Writer对象的writerow()方法写入文件。该方法接受参数为列表,返回值为写入文件这一行中的字符数(包括换行符)。import csvwith open("test.csv", 'w', encoding='utf-8', newline='') as outputFile: dataWriter = csv.writer(outputFile) dataWriter.writerow(['a', 'b', 'c']) dataWriter.writerow(['啊', '吧', '次']) dataWriter.writerow(['A', 'Hello,World!', 'C'])最后输出结果a,b,c啊,吧,次A,"Hello,World!",C
此处的Hello,Wrold!中的逗号自动转义,使用双引号处理了。
在windows中open()需加上newline=”参数,否则将出现2倍行距的情况。 写入的文件必须已经存在。delimiter 指定分隔符,默认为逗号
lineterminator 行距,默认为单倍行距dataWriter = csv.writer(outputFile, delimiter='\t', lineterminator='\n\n')
上面表示使用制表符作为分隔符,两倍行距(也就是行之间字符变为2个换行符)。
excel数据处理
excel的操作都是通过第三方库来进行。常用的有xlrd、xlwt、xluntils、pyExcelerator、openpyxl。
- xlrd只能进行读取excel文件,没法进行写入文件。
- xlwt可以写入文件,但是不能在已有的excel的文件上进行修改。 vxluntils可以对文件进行复制和修改,该模块功能实现依赖于xlrd和xlwt。
- pyExcelerator模块与xlwt类似,也可以用来生成excel文件,同时支持单元格合并、冻结等操作。 vopenpyxl也支持文件的读取、写入、创建和删除工作表、设置字体格式、单元格合并、冻结等操作。
转载地址:https://blog.csdn.net/weixin_39934221/article/details/80648601 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月17日 11时50分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
说说在 Android 中如何接收系统广播
2019-04-26
说说在 Android 中如何发送自定义广播
2019-04-26
说说如何使用 Android 的本地广播
2019-04-26
说说在 Android 中如何实现强制下线功能
2019-04-26
说说 jBPM 流程定义语言(8)—— sub-process(子流程活动)
2019-04-26
说说 MD5 加密后的类型(16位与 32位的区别)
2019-04-26
说说如何使用 Java 原生方法实现 MD5 加密算法
2019-04-26
说说在 Spring 中如何创建增强类(AOP)
2019-04-26
Vue 教程(8)—— 事件处理
2019-04-26
Vue 教程(9)—— 表单输入绑定
2019-04-26
说说 Android 中 WebView 的基本用法
2019-04-26
SWIFT入门 Dictionary
2019-04-26
SWIFT SET
2019-04-26
swift operation
2019-04-26
利用NVIDIA TensorRT加速交通环境感知之亲测有效
2019-04-26
NVIDIA 第三届Sky Hackathon学深会踩坑实录~
2019-04-26
关于linkedin的network的观察和自己的职业道路的追求
2019-04-26