a).在 Python 中,一个.py文件就称之为一个模块(Module)。
•大大提高了代码的可维护性;
•编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用;
b).调用函数时用import xxx
a).getpass模块提供了可移植的密码输入
import getpass
getpass.getpass()
b).时间模块
import time
time.sleep()
time.time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
time.ctime()
c).数学模块
import math
math.pow(x,y) x的y次方
d).os模块
import os
print(os.listdir(‘/var/log/’)) 列出/var/log/下的目录和文件
e).random和string模块
import random
import string
li = [1,2,3,4]
a = random.choice('hello') # 从序列中拿出一个值出来
b = random.sample(string.ascii_letters + string.digits, 4) # 从序列中拿出指定个值出来
random.shuffle(li) # 打乱顺序
print(a)
print(b)
print(li)
f).functools模块
该模块为高阶函数提供支持——作用于或返回函数的函数被称为高阶函数。在该模块看来,一切可调用的对象均可视为本模块中所说的“函数”。
在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。
在 Python 中,是通过 _ 前缀来实现。比如author , name就是特殊变量的,func,__fun为私有函数,不能直接引用。
1.需要联网 ;
2.通过 setuptools 这个工具完成;
3.pip install 包名 或 pycharm中安装;
a).使用itchat模块,实现给手机助手发送消息
import itchat
import time
import random
itchat.auto_login(hotReload=True)
while True:
#1. 给手机助手发送消息
itchat.send('hello', toUserName="filehelper")
itchat.send_file('/etc/passwd', toUserName='filehelper')
time.sleep(random.randint(1, 3))
import itchat
import time
import random
itchat.auto_login(hotReload=True)
friends = itchat.get_friends()
info = {} # 'male':1, 'female':, 'other':
for friend in friends[1:]:
if friend['Sex'] == 1:
info['male'] = info.get('male', 0) + 1
elif friend['Sex'] == 2:
info['female'] = info.get('female', 0) + 1
else:
info['other'] = info.get('other', 0) + 1
print(info)
1.当我们试图加载一个模块时,Python 会在指定的路径下搜索对应的.py 文件;
2。默认情况下,Python 解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在 sys 模块的 path 变量中;
3.模块的查找顺序: 内存中已经加载的模块 –> 内置模块 > sys.path目录里面的模块
4.内存中已经加载的模块 :
sys.modules查看, python解释器启动式默认会加载的模块内容.
5.注意:
自定义,模块千万不要跟内置模块冲突.
如果不同的人编写的模块名相同,为了避免模块名冲突,Python 又引入了按目录来组织模块的方法,称为包(Package)
创建包的步骤:
创建一目录为包名;
在该文件夹下创建init.py文件存放包的信息,该文件可以为空;
根据需要存放脚本文件,已编译的扩展及子包;
可以用import,import as,from import等语句导入模块和包;