《python语言程序设计基础》—— 第7章

文件和数据格式化

打开文件

文件概述:文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。类似地,函数是程序的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。问阿金包括两种类型:文本文件和二进制文件。
二进制文件直接由比特0和比特1组成,没有统一字符编码,问阿金内部数据的组织格式与文件用途有关。二进制是信息按照非字符但特定格式形成的文件,例如,png格式的图片问阿金、avi格式的视频文件。二进制文件和文本文件最主要的区别在于是否有统一的字符编码。二进制文件没有同意字符编码,只能当做字节流,而不能看做是字符串。

使用open()便可以打开一个文件,并实现该文件与一个程序变量的关联:变量名 = open(文件名,打开模式)

文件的打开模式含义
‘r’只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
'w覆盖写模式,文件不存在则创建,存在则完全覆盖
‘x’创建写模式,文件不存在则创建,存在则返回异常FileExistsError
‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式,默认值
‘+’与r/w/x/a一起使用,在原功能基础上增加同时读写功能

可以通过上面不同模式的组合实现对文件打开方式的控制。

读写文件

在这里插入图片描述
在这里插入图片描述

PIL库的使用

PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。
PIL库主要可以实现图像归档和图像处理两方面功能需求。
(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等。
(2)图像处理:图像基本处理、像素处理、颜色处理等。
根据功能不同,PIL库包括21个与图片相关的类,这些类可以看做是子库或者PIL库的模块,子库列表如下:
Image,ImageChops,ImageColor,ImageCrakeCode,ImageDraw,ImageEnhance,ImageFile,ImageFileIO,ImageFilter,ImageFont,…

Image

在PIL中,任何一个图像都可以用Image对象表示。

方法描述
Image.open(filename)根据参数加载图像文件
Image.new(mode,size,color)根据给定参数创建一个新的图像
Image.open(StringIO.StringIO(buffer))从字符串中获取图像
Image.frombytes(mode,size,data)根据像素点data创建图像
Image.verify()对图像文件完整性进行检查,返回异常

加载一个图片的方式:

from PIL import Image
im = Image.open(文件名)
print(im.format, im.size, im.mode)
##可以得到已经加载的图像文件的属性

Image类中4个处理图片的常用属性:

属性描述
Image.format标识图像格式或者来源,如果图像不是从文件读取,值为None
Image.mode图像的色彩模式,“L”标识灰度图像,“RGB”是真彩色图像,“CMYK”是出版图像
Image.size图像宽度和高度,单位是像素,返回值是二元元组
Image.palette调色板属性,返回一个ImagePalette类型

Image还能读取序列类图像文件,包括GIF、FLI、FLC、TIFF等格式文件。open()方法打开一个图像时自动加载序列中的第一帧,使用seek()和tell()方法可以在不同帧之间移动。

方法描述
Image.seek(frame)跳转并返回图像中的指定帧
Image.tell()返回当前帧的序号
方法描述
Image.save(filename, format)(主要用于保存文件到硬盘)将图像保存为filename文件名,format是图片格式
Image.convert(mode)使用不同的参数,转换图像为新的模式
Image.thumbnail(size)创建图像的缩略图,size是缩略图尺寸的二元元组
方法描述
Image.resize(size)按size大小调整图像,生成副本
Image.rotate(angle)按angle(逆时针方法)旋转图像,生成副本

在这里插入图片描述

ImageFilter类和ImageEnhance类

方法表示描述
ImageFilter.BLUR图像的模糊效果
ImageFilter.CONTOUR图像的轮廓效果
ImageFilter.DETAIL图像的细节效果
ImageFilter.EDGE_ENHABCE图像的边界加强效果
ImageFilter.EDGE_ENHABCE_MORE图像的阈值边界加强效果
ImageFilter.EMBOSS图像的浮雕效果
ImageFilter.FIND_EDGES图像的边界效果
ImageFilter.SMOOTH图像的平滑效果
ImageFilter.SMOOTH_MORE图像的阈值平滑效果
ImageFilter.SHARPEN图像的锐化效果

太多函数了,这可记不住!用的时候现查吧!

方法描述
ImageEnhance.enhance(factor)对选择属性的数值增强factor倍
ImageEnhance.Color(im)调整图像的颜色平衡
ImageEnhance.Contrast(im)调整图像的对比度
ImageEnhance.Brightness(im)
ImageEnhance.Sharpness(im)调整图像的锐度

json库

json库主要包括两类函数:操作类函数和解析类函数。操作类函数主要完成外部JSON格式和程序内部数据类型之间的转换功能;解析类函数主要用于解析键值对内容。json格式包括对象和数组,用大括号{}和方括号[]表示,分别对应键值对的组合关系和对等关系。使用json库时需要注意json格式的“对象”和“数组”概念与Python原因中“字典”和“列表”的区别和联系。一般来说,JSON格式的对象将被json库解析为字典,JSON格式的数组将被解析为列表。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值