作死罢了

新生活

python模块

一、模块
1、模块定义
在 Python 中,一个.py文件就称之为一个模块(Module)。其优势在于:
大大提高了代码的可维护性;
当一个模块编写完毕,就可以被其他地方引用;
2、模块的搜索路径
1、默认情况下,Python 解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在 sys 模块的 path 变量中


import sys
print(sys.path)
['/home/kiosk/PycharmProjects/练习', '/home/kiosk/PycharmProjects', '/usr/local/python3/lib/python36.zip', '/usr/local/python3/lib/python3.6', '/usr/local/python3/lib/python3.6/lib-dynload', '/usr/local/python3/lib/python3.6/site-packages']

2、追加模块的搜索路径


In [3]: sys.path.append('/mnt')
In [4]: sys.path
Out[4]: 
['',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/mnt']

3、将新追加的路径添加到最前面


In [5]: sys.path.insert(0,'tmp')
In [6]: sys.path
Out[6]: 
['tmp',
 '',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/mnt']

3、源模块
1.内置模块
如:time(时间模块)、functools(函数工具模块)、random(随机数)
2.自定义模块
含有自定义python脚本的目录、包均可
3.第三方模块
需要联网安装,例如itchat模块;
通过 setuptools 这个工具完成;
pip install 包名 或 pycharm中安装;
四、调用模块 import 关键字
1.itchat(第三方模块)


if __name__ == "__main__":   # 判断的是这个脚本内容是否为被导入的模块内容
##itchat(微信)模块
itchat.auto_login(hotReload=True)  ##自动登陆,hotReload(热加载)默认为False,加载上次缓存
itchat.send('hello itchat!', toUserName='filehelper')  ##微信助手发消息
name = itchat.search_friends('文件助手')[0]['UserName']  ##查找好友的编码
itchat.send('Ready Go!!', toUserName=name)  ##给指定好友发消息
itchat.get_friends  ##查看好友信息,包括自己的;第一个索引就是用户自己的信息
itchat.get_chatrooms  ##新建群聊

2.微信简易自动回复


import itchat

@itchat.msg_register(itchat.content.TEXT)  ##装饰器,自动回复消息
def test(msg):  ##msg是字典类型,封装的是好友发送的信息
    test = msg['Text']  ##key:Text对应的value值为信息内容
    FromUser = msg['FromUserName']  ##FromUserName:发送信息的好友
    if 'age' in test:
        res = '20'
        # return '20'
    elif 'hello' in test:
        res = 'hello'
        # return 'hello'
    else:
        res = 'Get away...'
        # return 'Get away...'
    itchat.send(res, toUserName=FromUser)

itchat.auto_login(hotReload=True)  ##自动登陆
itchat.run()  ##运行

3.聊天内容出现的图片、视频保存


import itchat

@itchat.msg_register(itchat.content.PICTURE, itchat.content.VIDEO)
def download(msg):   ##装饰器,接收图片、视频
    msg.download(msg['filename'])  ##采用download内置方法下载

    with open(msg['filename'],'wb') as f :  ##open函数,写入图片或视频
         f.write(msg['filename'])

itchat.auto_login(hotReload=True)
itchat.run()

二、包
1、包的目的
为了避免模块名冲突,Python 又引入了按目录来组织模块的方法,称为包(Package)
二、包的管理
1.创建包
创建一目录为包名;
在该文件夹下创建init.py文件存放包的信息,该文件可以为空;
根据需要存放脚本文件,已编译的扩展及子包;
可以用import,import as,from import等语句导入模块和包;
2.作用域
在 Python 中,是通过 _ 前缀来限制变量的使用范围,即作用域:
比如author , name就是特殊变量的,func,__fun为私有函数,不能直接引用
3.包的调用
包里的自定义脚本test


x = 10
y = 20

def add(a, b):
    return a + b

def power(i, j=3):
    return i ** j

if __name__ == '__main__':   ##测试
    print(add(2, 4))
    print(power(2, 4))

第1种调用方式:

# import pick01.test  ##调用时需要‘绝对路径’
>>> import pick01.test
>>> pick01.test.add(2,5)
7

第2种调用方式:

# from pick01 import test  ##调用时,‘路径’短一些
>>> from pick01 import test
>>> test.power(4)
64

第3种调用方式:

# from pick01.test import add  ##调用时,‘路径’最短
>>> from pick01.test import add
>>> add(1,5)
6

重要:包的调用,最常用的
init.py进行编辑:
from .test import * ##导入当前路径下test模块的所有信息
再次调用pick01包:

import pick01
print(pick01.x)   ##可直接使用test的所有内置信息
print(pick01.add())
print(pick01.power())
阅读更多
想对作者说点什么? 我来说一句

Python PIL1.1.7 模块

2011年02月16日 487KB 下载

Python自动化运维模块讲解

2017年11月22日 69KB 下载

python读写rar文件的模块

2010年02月05日 13KB 下载

牛B的Python模块

2011年04月22日 3KB 下载

.Python模块

2011年12月10日 54KB 下载

Python-pymysql模块

2016年12月19日 169KB 下载

Imaging-1.1.7.模块

2018年06月10日 825KB 下载

python模块源码

2009年08月14日 589KB 下载

simplejson-3.6.5

2015年09月07日 72KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭