Python模块

本文详细介绍了Python中的模块导入、使用及管理方法,包括标准库模块、自定义模块的导入方式,模块的搜索路径,以及如何使用包来组织相关模块。此外还列举了一些常用的Python内置模块及其功能。

https://www.cnblogs.com/drchen/p/6799551.html

python的标准安装中包含标准库

一、导入模块:

1.导入既有(标准库)模块

import math (从默认的路径中寻找math模块)

 

python解释器从哪里查找模块呢?即搜索路径,目录列表可以在sys模块的path变量中找到  ,sys.path,打印出来

import sys,pprint

pprint.pprint(sys.path)  //pprint为智能打印输出

2.导入外部(自己写的)模块

import sys

sys.path.append('c:/python')     //模块路径

import hello                               //模块的文件名应该为hello.py

import hello as hi                  //模块可以起别名

内部逻辑:导入模块的时候,会生成  modulename.pyc,.pyc文件是编译好的python能够有效处理的文件,.pyc文件会随着.py文件的更新而更新

模块只有在第一次导入到程序时被执行

二、访问模块:

1.访问模块中的函数:模块名.functionname()    

2.访问模块中的变量:模块名.globalname

所有模块都有一个内置属性__name__   ,它的值取决于如何应用模块:

1.当import 一个模块,__name__=模块名

2.当运行一个模块,__name__='__main__' (默认为__main__)

if __name__=='__main__': test()   可以理解为当独立运行该模块的时候(不包括被import),执行test()函数。如果该模块被导入的时候(即__name__='module name'),不执行该if下面的语句,直接用模块名.方法名使用

三、使用包

包就是模块所在的目录,为了让python将其作为包对待,包中必须包含一个名为__init__.py的文件,(可以把它想象成模块中的构造函数,用来初始化的作用)如果访问__init__.py文件中的变量PI,则使用包名.PI即可

~/python/

~/python/drawing/                       //包drawing

~/python/drawing/__init__.py        //

~/python/drawing/colors.py        //包模块

~/python/drawing//shapes.py        //包模块

假设包放置在了python搜索路径下

import drawiing        //只能用__init__模块

import drawing.colors     //可独立使用,colors模块可用,通过全名drawing.colors使用

from drawing import shapes  //可独立使用,shapes模块可用,通过短名shapes使用

四、探究模块

不管是标准库还是添加的python其他功能模块,都可以用import导入进来查看里面的具体内容

打印对象的所有特性,包括函数,类,变量等,以下划线开始的过滤掉不打印

全部,包含以下划线开始的名字列表

检查__all__变量的内容:

__all__=["Error","copy","deepcopy"]   定义了模块的公有接口,即执行from copy import * 后,可以使用all变量中的函数,执行copy.PyStringMap 或 from copy import PyStringMap  才可以使用PyStringMap

如果没有设定__all__,用from copy import * 后,导入所有不以下划线开头的全局名称。

五、模块搜索路径

python解释器在启动时会自动加载一些模块,可以使用sys.modules查看

模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块。

在初始化后,python程序可以修改sys.path,路径放到前面的优先于标准库被加载。

把自定义的文件打包 zip module.zip foo.py bar.py

import sys

sys.path.append('module.zip)

import foo,bar

或者

sys.path.append('module.zip/lib/python')

-------------------------------------------------------------------

help(copy.copy)                      帮助显示copy模块中的copy函数的用法

help(copy)               帮助显示copy模块以及模块中的更多函数信息

print copy.copy.__doc__         显示copy函数的文档

http://python.org/doc/lib          在线文档

print copy.__file__      查找copy模块源码文件在哪儿

C:\python27\lib\copy.py

-----------------------------------------------------------------------------------------------------------------------------------

五、常用模块

sys模块
argv命令行参数,包括脚本名称
exit([arg])退出当前程序,可选参数为给定的返回值或错误消息
modules映射模块名字到载入模块的字典
path查找模块所在目录的目录名列表
platform平台标示符
stdin标准输入流
stdout标准输出流
stderr标准错误流
  

 

os模块
environ对环境变量进行映射
system(command)在子shell中执行操作系统命令
sep路径中的分隔符
pathsep分隔路径的分隔符
linesep行分隔符('\n','\r')
urandom(n)返回n字节的加密强随机数据

 

fileinput模块 
input([files[. inplace[. backup]])便于遍历多个输入流中的行
filename()返回当前文件的名称
lineno()返回当前(累计)的行数
filelineno()返回当前文件的行数
isstdin()检查最后一行是否来自sys.stdin
isfirstline()检查当前行是否是文件的第一行
nextfile()关闭当前文件,移动到下一个文件
close()关闭序列

集合、堆、双端队列

集合set

a=set([1,2,3])

b=set([2,3,4])

 
 a.union(b)set([1,2,3,4])
 a&bset([2,3])
 a.intersection(b)set([2,3])
 a.difference(b)set([1])
 a-bset([1])
 a.symmetric_difference(b)set([1,4])
 a ^ bset([1,4])
 a.copy()set([1,2,3])
   
堆heap模块名是heapq 
 heappush(heap,x)将x入堆
 heappop(heap)将堆中最小的元素弹出
 heapify(heap)将heap属性强制应用在任意一个列表
 heapreplace(heap,x)将堆中最小的元素弹出,同时将x入堆
 nlargest(n,iter)返回iter中第n大的元素
 nsmallest(n,iter)返回iter中第n小的元素
双端队列dequefrom collections import deque 
 q=deque([6,0,1,2,3,4,5]) 
 q.pop()返回5,删除5
 q.popleft()返回6,删除6
 q.rotate(3)右移3位,此时q=deque([2,3,4,0,1])
 q.rotate(-1)左移1位,此时q=deque([3,4,0,1,2])

 

 time模块

包含9个整数的元祖(2008,1,21,12,2,56,0,21,0)表示   “2008年1月21日12点2分56秒,星期一,当年的第21天,无夏令时”。

time.asctime()            返回‘Fri Dec 21 05:41:27  2008’

asctime([tuple])将时间元祖转换为子串
loacaltime([secs])将秒数转换为日期元祖,以本地时间为准
mktime(tuple)将时间元祖转换为本地时间
sleep(secs)休眠secs秒
strptime(string[,format])将字符串解析为时间元祖
time()当前时间(新纪元开始后的秒数,以UTC为准)

random模块

random()返回0<n<=1之间的随机实数
getrandbits(n)以长整型形式返回n个随机位
uniform(a,b)

返回随机实数n,其中a<=n<b

randrange([start],stop,[step])返回range(start,stop,step)中的随机数
choice(seq)从序列seq中返回随意元素
shuffle(seq[,random])原地指定序列seq
sample(seq,n)从序列seq中选择n个随机且独立的元素

shelve模块

简单的存储

省略。。。。。。。。

 

转载于:https://www.cnblogs.com/zz27zz/p/7454667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值