python文件读写和异常处理
python处理文件读写,CVS文件、Excel文件、Word文件,操作PDF文件
文件读写和异常处理
1、打开和关闭文件
open
函数
2、读写文本文件
二者对比,少了finally块中的代码,代码变得优雅了,不会出现忘记关闭io流的情况
3、读写二进制文件
1 |
|
1 |
|
对象的序列化和反序列化
python
和javascript
数据类型对应关系
对象的序列号和反序列化
1 |
|
json
模块有四个比较重要的函数,分别是:
dump
- 将Python对象按照JSON格式序列化到文件中dumps
- 将Python对象处理成JSON格式的字符串load
- 将文件中的JSON数据反序列化成对象loads
- 将字符串的内容反序列化成Python对象
1 |
|
包管理工具
Python标准库中的json
模块在数据序列化和反序列化时性能并不是非常理想,为了解决这个问题,可以使用三方库ujson
来替换json
。所谓三方库,是指非公司内部开发和使用的,也不是来自于官方标准库的Python模块,这些模块通常由其他公司、组织或个人开发,所以被称为三方库。虽然Python语言的标准库虽然已经提供了诸多模块来方便我们的开发,但是对于一个强大的语言来说,它的生态圈一定也是非常繁荣的。
之前安装Python解释器时,默认情况下已经勾选了安装pip,大家可以在命令提示符或终端中通过pip --version
来确定是否已经拥有了pip。pip是Python的包管理工具,通过pip可以查找、安装、卸载、更新Python的三方库或工具,macOS和Linux系统应该使用pip3。例如要安装替代json
模块的ujson
,可以使用下面的命令。
2、使用网络API获取数据
1 |
|
3、操作CVS
将数据写入CSV文件
1 |
|
从CSV文件读取数据
1 |
|
将来如果大家使用Python做数据分析,很有可能会用到名为pandas
的三方库,它是Python数据分析的神器之一。pandas
中封装了名为read_csv
和to_csv
的函数用来读写CSV文件,其中read_CSV
会将读取到的数据变成一个DataFrame
对象,而DataFrame
就是pandas
库中最重要的类型,它封装了一系列用于数据处理的方法(清洗、转换、聚合等);而to_csv
会将DataFrame
对象中的数据写入CSV文件,完成数据的持久化。read_csv
函数和to_csv
函数远远比原生的csvreader
和csvwriter
强大。
4、操作Excel文件
Python读写Excel文件-1
本章我们先讲解基于xlwt
和xlrd
操作 Excel 文件,大家可以先使用下面的命令安装这两个三方库以及配合使用的工具模块xlutils
。
1 |
|
读Excel文件
1 |
|
写Excel文件
1 |
|
调整单元格样式
1 |
|
调整单元格样式
1 |
|
调整文字样式
1 |
|
完整代码块
1 |
|
掌握了 Python 程序操作 Excel 的方法,可以解决日常办公中很多繁琐的处理 Excel 电子表格工作,最常见就是将多个数据格式相同的 Excel 文件合并到一个文件以及从多个 Excel 文件或表单中提取指定的数据。当然,如果要对表格数据进行处理,使用 Python 数据分析神器之一的 pandas 库可能更为方便。
openpyxl读写Excel
1 |
|
5、操作Word文件
1 |
|
遍历word文件
1 |
|
6、操作PDF文件
7、python处理图像
1 |
|
使用Pillow绘图
Pillow 中有一个名为ImageDraw
的模块,该模块的Draw
函数会返回一个ImageDraw
对象,通过ImageDraw
对象的arc
、line
、rectangle
、ellipse
、polygon
等方法,可以在图像上绘制出圆弧、线条、矩形、椭圆、多边形等形状,也可以通过该对象的text
方法在图像上添加文字。
1 |
|
注意:上面代码中使用的字体文件需要根据自己准备,可以选择自己喜欢的字体文件并放置在代码目录下。
总结
使用 Python 语言做开发,除了可以用 Pillow 来处理图像外,还可以使用更为强大的 OpenCV 库来完成图形图像的处理,OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,可以用来开发实时图像处理、计算机视觉和模式识别程序。在我们的日常工作中,有很多繁琐乏味的任务其实都可以通过 Python 程序来处理,编程的目的就是让计算机帮助我们解决问题,减少重复乏味的劳动。通过本章节的学习,相信大家已经感受到了使用 Python 程序绘图改图的乐趣,其实 Python 能做的事情还远不止这些,继续你的学习吧。