• 第二模块:函数编程笔记(二)


    模块

    alex老师推荐 节目《晓说》

    模块 好处
    1. 提高可维护性

    模块分三种
    1. 内置标准模块 执行help('modules')查看本地自带模块
    2. 第三方开源模块, 可通过 pip install 模块名 联网安装
    3. 自定义模块
    alex 老师 gitbook
    https://www.gitbook.com/book/triaquae/python

    模块的导入路径
    默认查找目录
    默认从左往右找
    import sys
    sys.path
    追加目录
    sys.path.append('课程练习')
    删除目录
    del sys.path[-1]

    开源模块
    https://pypi.python.org/pypi 是python的开源模块库,截至2017年9.30日,已经收录了118170

    安装第三方模块
    python3 setup.py build
    python3 setup.py install

    佩奇老师-开源模块
    PyTrion

    豆瓣 开源仓库
    http://pypi.doubanio.com/

    包及跨模块导入
    当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把页面交互相关的放在一个文件夹。
    .
    └── my_proj
    ├── crm #代码目录
    │ ├── admin.py
    │ ├── apps.py
    │ ├── models.py
    │ ├── tests.py
    │ └── views.py
    ├── manage.py
    └── my_proj #配置文件目录
    ├── settings.py
    ├── urls.py
    └── wsgi.py

    像上面这样,一个文件夹管理多个模块文件,这样的文件夹就被称为包。

    __init__.py 初始化文件,认为是一个包。

    跨模块导入2
    import sys,os
    print(dir())
    print(__file__)
    BASE_DIR = os.path.dirname(os.path.dirname(__file))
    print(BASE_DIR)
    sys.path.append(BASE_DIR)

    print(os.path.abspath(__file__)) #获取绝对路径

    跨模块导入环境变量
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(BASE_DIR)

    相对导入
    文件夹被python解释器视作package需要满足两个条件:
    文件夹中必须有__init__.py文件,该文件可以为空,但必须存在该文件。
    不能作为顶层模块来执行该文件夹中的py文件(即不能作为主函数的入口)。

    内置模块

    time 模块
    time.time() 生成时间戳

    time.localtime() 将一个时间戳转换为当前时区的strr

    time.mktime() 时间对象转时间戳

    time.sleep(10)

    time.ctime() 以1970年为标准值

    time.asctime()

    time.strftime() 将时间格式转换

    time.strptime() 字符串转时间对象

    datetime 模块
    相比time模块,

    d = datetime.datetime.now() 返回当前的datetime日期类型

    2. datetime.date.fromtimestamp()

    datetime.timedelta()

    4. 时间

    random 模块
    随机数

    random.randint(1,100) 随机数 1 - 100 之间

    random.randrange(1,100)

    random.random() 返回浮点数

    random.choice('abcdefjhigk') 单字符随机

    random.sample('abcdefjhigk',3) 设置3个字符随机

    random.shuffle()

    os 模块
    os.getcwd 得到当前工作目录

    os.listdir 返回指定目录下的文集那

    os.getenv 获取操作系统环境变量

    os.environ 返回操作系统所有环境变量

    os.linesep 给出当前平台使用的行终止符

    os.name 指示你正使用的平台

    os.rename 重命名

    os.makedirs 创建多级目录

    os.mkdir 创建单个目录

    os.stat 获取文件属性

    os.chmod 修改文件权限与时间戳

    sys 模块
    sys.argv()

    sys.exit() 退出程序

    sys.version() 打印版本

    sys.maxint() 最大的Int值

    sys.path() 返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值

    sys.platform 返回操作系统平台名称

    sys.stdout.write() 标准输出,引出进度条的例子

    sys.stdin.readline()[:-1] 标准输入

    sys.getrecursionlimit() 获取最大递归层数

    sys.setrecursionlimit(1200) 设置最大递归层数

    sys.getdefaultencoding() 获取解释器默认编码

    sys.getfilestemencoding() 获取内存数据存到文件里的默认编码

    shutil 模块
    shutil.copyfileobj(fsrc,fdst[,length])
    将文件内容拷贝到另一个文件中

    shutil.copyfile(src, dst)
    拷贝文件

    shutil.copymode(src, dst)
    仅拷贝权限。 内容、组、用户均不变

    shutil.copy()
    拷贝文件和权限

    shutil.copy2()
    拷贝文件和状态信息

    shutil.ignore_patterns(*patterns)
    shutil.copytree(str, dst, symlinks=False, ignore=None)
    递归的去拷贝文件

    shutil.rmtree()
    递归的去删除文件

    shutil.move(str,dst)
    递归的去移动文件

    shutil.make_archive(base_name,format,...)
    创建压缩包并返回文件路径,列如:zip、tar
    base_name: 压缩包的文件名
    format: 压缩的格式
    root_dir: 压缩的目录

    zipfile 模块


    tarfile 模块
    tarfile.open()

    序列化
    序列化是指把内存里的数据类型转变成字符串
    把字符转成内存数据类型,叫反序列化

    pickle 模块
    特性:
    支持python里的所有的数据类型
    只能在python里使用

    pickle.dump()

    pickle.load()

    json 模块
    特性:
    支持 str,int,tuple,list,dict 数据类型
    可跨平台

    json.dump() 仅转成字符串

    json.load()

    只是把数据类型转成字符串存到内存里的意义?
    json.dumps json.loads
    1. 把你的内存数据通过网络,共享给远程其它人
    2. 定义了不同语言的之前的交互规则
    1. 纯文本, 坏处,不能共享复杂的数据类型
    2. xml, 坏处, 占空间大
    3. json, 简单, 可读性强

    sheive 模块

    sheive.open()

    xml 模块
    xml是实现不同语言或

    configparser模块
    configparser.ConfigParser()

    hashlib 加密模块
    hash
    简单的说就是一种将任意长度的消息压缩到某以固定长度的消息摘要的函数。

    MD5
    讯息摘要算法,一种被广泛使用的密码杂凑函数,可以产生一个128位的散列值,用于确保信息

    MD5算法特性:
    1. 压缩性: 任意长度的数据,算出的MD5值的长度都是固定的
    2. 容易计算: 从原数据计算出MD5值很容易
    3. 抗修改性: 对元数据进行任何改动,修改一个字节生成的MD5值区别也会很大
    4. 强抗碰撞: 已知原数据和MD5,想找到一个具有相同的MD5值得数据(即伪造数据)是非常困难的。

    h = hashlib.md5()
    h.hexdigest() 数值唯一

    subprocess 模块
    三种执行命令
    subprocess.run() 返回
    用法
    a = subprocess.run(['df','-h'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    a.stdout

    subprocess.call()
    用法:
    retcode = subprocess.call(["ls", "-l"])

    subprocess.Popen()

    a = subprocess.Popen()

    logging 模块
    记录日志,提供了标准的日志接口。
    可以分为 debug(), info(), warning(), error() and critical() 5个级别。

    logging.wrning()

    logging.critical()

    logging.error()

    logging.basicConfig()
    语法:
    logging.basicConfig(filename='log_test.log',
    level=logging.DEBUG,
    format='%(asctime)s %(message)s',
    datefmt='Y-%m-%d %I:%M:%S %p')
  • 相关阅读:
    centos8上安装中文字符集
    python使用p12个人证书发送S/MIME加密,签名邮件
    linux 下如何获取 cpu 温度
    [官网]Apache Log4j2 最新版安全提示 2.17.0
    电子书下载:Beginning Windows Phone 7 Development
    沙发的含义
    电子书下载:Windows Phone 7 Developer Guide: Building connected mobile applications with Microsoft Silverlight
    电子书下载:The Rails 3 Way, 2nd Edition
    Enfocus Pitstop 7.52 汉化破解版安装
    电子书下载:Professional Flash Mobile Development: Creating Android and iPhone Applications
  • 原文地址:https://www.cnblogs.com/changha0/p/8000238.html
Copyright © 2020-2023  润新知