python 导入数据包的几种方法

Python06

python 导入数据包的几种方法,第1张

1.直接导入整个数据包:improt 数据包

2.导入数据包中的某一个函数: from 数据包 improt 函数(当函数这一项为 * 时为导入整个数据包)

3. 导入之定义的数据包()

除了让包内导入更加显式,这个功能的一部分设计初衷是,为了帮助脚本解决同名文件出现在模块搜索路径上多个不同位置时的二义性。考虑包目录,这定义了一个名为mypkg 的包,其中含有名为mypkg.main和mypkg.string 的模块。现在,假设模块main试图导入名为string的模块。在 Python 2.X和更早版本中,Python会先寻找mypkg目录以执行相对导入。这会找到并导入位于该处的string.py文件,将其赋值给mypkg.main模块命名空间内的名称string。不过,这一导入的本意可能是要导入Python标准库的string模块。可惜的是,在这些Python版本中,无法直接忽略mypkg.string 去寻找位于模块搜索路径更右侧的标准库中的string模块。此外,我们无法使用完整包导入路径来解决这个问题,因为我们无法依赖在每台机器上的标准链接库路径。换句话说,包中的简单导入可能具有二义性而且容易出错。在包内,我们无法确定imports pam语句指的是包内的模块还是包外的模块。一种可能的后果是,一个局部的模块或包会在不经意间隐藏了sys.path 上的另一个模块。在实践中,Python使用者可以避免为他们自己的模块重复使用标准库模块的名称(如果需要标准string库,就不要把新的模块命名为string)。但是,一个包还是有可能意外地隐藏标准库模块。再者,Python 以后可能新增标准库模块,而其名称可能刚好就和自己的一个模块同名。而依赖于没有点号开头相对导入的程序代码同样也不容易理解,因为读者可能对希望使用哪个模块而感到困惑。所以我们最好能在代码中显式地指出导入的解析过程。

1

PIL(Python Image Library)——它是python的第三方图像处理库,功能非常的强大,几乎被认定为Python的官方图像处理库。

功能如下:

1、图像归档(Image Archives)。

PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。

2、图像展示(Image Display)。

PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。

3、图像处理(Image Processing)。

PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。

操作步骤

2

Step1:导入PIL库的模块

Image是PIL库的基本核心类,用来实现导入GIF

from PIL import Image, ImageSequence #导入PIL库的Image和 ImageSequence 模块

im = Image.open('1.gif') #导入需要倒放的gif

Step2:GIF图片分解成帧

ImageSequence模块包括了一个wrapper类,它能够让用户迭代访问图形序列中每一帧图像。利用ImageSequence中的Iterator函数创建一个迭代器实例,让用户循环访问序列中的全部图像。

sequence = [] #用来存放GIF分解成帧的序列

i=0

for f in ImageSequence.Iterator(im): #循环访问GIF中的逐帧

sequence.append(f.copy())

i+=1

f.save('out_'+str(i)+'.png') #将每次分离出来的帧保存

可以看到文件夹中已经有分解的静态图片了,每张图都是gif动图的某一帧,把所有的静态图按倒序连起来就是倒放的gif动图。

Step3:将得到的序列通过reverse()函数倒序

sequence.reverse() #将帧序列倒叙

Step4:将得到的帧序列重新还原成GIF:

sequence[0].save('out1.gif',save_all=True,append_images=sequence[1:]) #生成新的GIF

Step5:得到倒放GiF图片