资讯专栏INFORMATION COLUMN

Python内置模块和第三方模块

codercao / 1452人阅读

摘要:的强大之处在于他有非常丰富和强大的标准库和第三方库模块,几乎你想实现的任何功能都有相应的库支持,就类似于中的类库亦或的包,前端中的库。提供了一个简单的方法来导入一个模块中的所有项目。在启动时,根据内建规则变量进行初始化。

Python的强大之处在于他有非常丰富和强大的标准库和第三方库(模块),几乎你想实现的任何功能都有相应的Python库支持,就类似于C#中的类库亦或JAVA的jar包,前端中的JS库。
使用模块有什么好处

其实模块化这个概念在任何的编程语言中都是存在的,可以想象一下,如果一直在一个文件里面编写的代码,那么代码会越来越长,后期很难维护和升级。

为了编写可维护的代码,我们会对代码进行拆分,分到不同的文件里面,这样每个文件的代码量就少了,在python中,一个.py文件就可以理解为一个模块,模块之间可以互相引用。

除了可以自己编写模块以外python还给我们内置了一些模块称为标准库,还有需要多带带安装的第三方库

模块导入方法

我们已经知道每一个.py文件其实就是一个模块,那么我们来动手编写一个模块

#内容为module1.py
message="hello world"
def say():
    print("hello")

模块定义好了在其他文件中入如何导入模块
import module1
如果导入多个模块以逗号分隔,如import module_name1,module_name2

#newdemo.py 新创建的py文件中到入模块,并访问模块下方法
#第一种导入方式
import module1
module1.say()
#第二种导入方式
from module1 import *
say()

运行一下发现上面的两种导入方式都没毛病,都可以正常运行,我们来对比下两种导入方式:

调用方式不同

前者是 将被导入的模块的名称放入到当前的模块内; 而后者 是将被导入的函数或变量的名称放入到当前操作的模块内。

from ...import提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

from ...import导入会和你文件内的函数、变量名称不能冲突会被覆盖(解决方案看代码)

#为了防止名称冲突,通过as起一个别名
from module1 import say as newsay
def say():
    print("不是导入模块的say")
say() #自己的
newsay() #引来的

导入模块我们已经会了,那导入包和导入模块一样么,显然不会一样

import package_test #导入包的时候会先执行 __init__下的内容
# 在__init__中from . import test1
print(package_test.test1.name)
内置模块

一般情况下它们的存放目录

标准库:应该如何使用标准库:
1.datetime模块:datetime模块是对time模块的一个高级封装(time包基于C语言的库函数)

#前面刚说了模块的不同导入方式,第一种
import datetime
print(datetime.datetime.now()) #当前时间 2017-12-27 10:05:16.684310
print(datetime.date.today()) #格式化输出 2017-12-27
print(datetime.datetime.now()+datetime.timedelta(days=10))  #比现在加10天
print(datetime.datetime.now()+datetime.timedelta(days=-10)) #比现在减10天
print(datetime.datetime.now()+datetime.timedelta(hours=-10)) #比现在减10小时
print(datetime.datetime.now()+datetime.timedelta(seconds=120)) #比现在+120s
#第二种
from datetime import datetime
print(datetime.now()) #当前时间 2017-12-27 10:05:16.684310

2.random模块:Python中的random模块用于生成随机数

import random
print(random.random()) #用于生成一个0到1的随机符点数: 0 <= n < 1.0 
print(random.randint(1,7))#用于生成一个指定范围内的整数,包含1 和 7
print(random.randrange(1,3))#随机指定范围内的整数,不包含3
print(random.choice("lidao"))#随机字符
print(random.choice(["aa","bb","cc"]))#随机在列表中取值
print(random.randrange(1,9000)+1000)#生成四位数字验证码

3.sys模块:sys模块提供了一系列有关Python运行环境的变量和函数

import sys

print(sys.platform) #获取当前执行环境的平台,如win32表示是Windows 32bit操作系统,linux2表示是linux平台;
print(sys.path) #path是一个目录列表,供Python从中查找第三方扩展模块。在python启动时,sys.path根据内建规则、PYTHONPATH变量进行初始化。
print(sys.builtin_module_names) #返回一个列表,包含内建模块的名字
print(sys.argv) #可以用sys.argv获取当前正在执行的命令行参数的参数列表(list) sys.argv[0]    当前程序名 sys.argv[1]    第一个参数

4.os模块:os模块包含普遍的操作系统功能,如文件操作、目录等,与具体的平台无关

import os

print(os.name) #判断现在正在实用的平台,Windows 返回 ‘nt"; Linux 返回’posix"
print(os.getcwd())#得到当前工作的目录
os.rename("game.py","game1.py")#文件重命名  
print(os.listdir())#指定所有目录下所有的文件和目录名
print(os.mkdir("aa"))#创建目录
print(os.system("dir"))#执行shell命令

当然上面只是简单让大家先了解下内置模块的使用,方法还有很多,后面在案例遇到的时候呢我们再去列出来。

第三方模块

1.xlrd模块:Python使用xlrd模块读写Excel文件

#第一步:通过pip install xlrd 安装
#第二步:导入模块
import xlrd
#第三步:读取数据
data = xlrd.open_workbook("test.xlsx")
table=data.sheets()[0] #通过索引顺序获取工作表
print(table.row_values(0)) #整行
print(table.col_values(0)) #整列
print(table.nrows) #行数
print(table.ncols) #列数
#通过循环行列表数据
for i in range(table.nrows):
    print(table.row_values(i))
print(table.cell(0,0).value) #单元格

2.xpinyin模块:一个把汉字转成拼音的模块

#pip install xpinyin
from xpinyin import Pinyin
p=Pinyin()
print(p.get_pinyin("北京"))

3.Image模块:Python操作图像的模块

from PIL import Image
import os

#pip install Image

im=Image.open("test.jpg") #加载图像
#im.show() #打开图片
#创建缩略图
im.thumbnail((500,500))#thumbnail函数接受一个元组作为参数,分别对应着缩略图的宽高,在缩略时,函数会保持图片的宽高比例。如果输入的参数宽高和原图像宽高比不同,则会依据最小对应边进行原比例缩放。 
im.save("newtest.jpg","JPEG")
#图像裁剪
region=im.crop((100,100,300,200))
region.save("croptest.jpeg")
# 旋转图片
# 左旋转45度
im = im.rotate(45)
im.save("rotate-l45.jpeg")

Python有很多非常有意思的模块和资源,给大家贴一个地址,自己看看哈https://github.com/jobbole/aw...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41124.html

相关文章

  • Python的高级特性,模块IO操作

    摘要:所以如果像上述这样引入模块的时候,调用函数必须加上模块名通常情况下鼓励每个语句只导入一个包方便理解和阅读代码。 今天我们学习Python的高级特性、模块和IO操作,通过学习这些,我们可以更快的了解Python,使用Python。 高级特性中会讲述列表生成式、生成器、和一些高级函数,学习这些方便我们快速的生成列表,节省我们使用Python的时间,更快的使用Python达成我们的目的。 模...

    WelliJhon 评论0 收藏0
  • Python标准库---0、简介

    摘要:下一篇文章标准库内置函数标准库语言参考描述了语言的具体语法和语义,这份库参考则介绍了与一同发行的标准库。这个库也包含了内置函数和异常不需要语句就可以在所有代码中使用的对象。下一篇文章标准库内置函数 下一篇文章:Python标准库---1、内置函数 Python 标准库 Python 语言参考 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标...

    mo0n1andin 评论0 收藏0
  • Python - 模块module

    摘要:一什么是模块中,一个文件就称之为一个模块。所有的内置函数为避免模块名冲突,又引入了按目录来阻止模块冲突的方法,称为包。例如下列小程序以自建的模块,编写一个的模块。如果在其他地方导入该模块时,判断将失败,即仅在此模块单独运行时生效。 一、什么是模块 Python中,一个.py文件就称之为一个模块。那么使用模块有什么好处呢? (1)提高了代码的可维护性。(2)代码不必从零开始,当一个模块...

    ranwu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<