• Python 模块


    模块,用一坨代码实现了某个功能的代码集合。 

    类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。

    如:os 是系统相关的模块;file是文件操作相关的模块

    模块分为三种:

    • 自定义模块
    • 内置模块
    • 开源模块
    自定义模块
    对于我们编写的以.py结尾的文件,我们都可以当做自定义模块来调用,调用之前需要先导入,然后即可使用模块中定义的功能。
     
     
    导入模块
    import 模块名
    from 文件夹 import 模块名
    from 文件夹 import 模块名 as 别名    #对导入的模块重命名在导入模块的时候,Python会根据路径去寻找,路径存储在sys.path中。
    >>> import sys
    >>> sys.path
    ['', 'C:\Windows\system32\python27.zip', 'C:\Python27\DLLs', 'C:\Python27
    lib', 'C:\Python27\lib\plat-win', 'C:\Python27\lib\lib-tk', 'C:\Python27
    ', 'C:\Python27\lib\site-packages']
    >>>
    

      第一个空格表示在当前文件夹中寻找,如果找不到依次按照列表的路径寻找。一般我们将第三方模块放置在C:\Python27\lib\site-packages(Linux为/usr/lib/python2.7/site-packages/

    如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。
    通过os模块可以获取各种目录,例如:

    import sys
    import os
    pre_path = os.path.abspath('../')
    sys.path.append(pre_path)
    
    安装第三方库
    下载安装有两种方式:
     1.   pip3 install requests
           yum
           apt-get
     
     2.   源码安装:下载源码,解压后切换到当前目录
        执行python setup.py install
    下载源码
    解压源码
    进入目录
    编译源码    python setup.py build
    安装源码    python setup.py install
    
    在下载安装源码的时候可能会用到gcc编译和Python开发环境,需要先执行:
    yum install gcc
    yum install python-devel
    apt-get python-dev

    Python内置模块

    一、sys

    提供和系统有关的操作命令
    sys.argv           命令行参数List,第一个元素是程序本身路径
    sys.exit(n)        退出程序,正常退出时exit(0)
    sys.version        获取Python解释程序的版本信息
    sys.maxint         最大的Int值
    sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform       返回操作系统平台名称
    sys.stdout.write('please:')
    val = sys.stdin.readline()[:-1]
    

    二、haslib

    用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

    import hashlib
     
    # ######## md5 ########
     
    hash = hashlib.md5()
    hash.update('admin')
    print hash.hexdigest()
     
    # ######## sha1 ########
     
    hash = hashlib.sha1()
    hash.update('admin')
    print hash.hexdigest()
     
    # ######## sha256 ########
     
    hash = hashlib.sha256()
    hash.update('admin')
    print hash.hexdigest()
     
     
    # ######## sha384 ########
     
    hash = hashlib.sha384()
    hash.update('admin')
    print hash.hexdigest()
     
    # ######## sha512 ########
     
    hash = hashlib.sha512()
    hash.update('admin')
    print hash.hexdigest()
    

    为了避免通过撞库来反解加密信息,我们可以加key值为加密信息加‘盐’

    import hashlib
     
    # ######## md5 ########
     
    hash = hashlib.md5('898oaFs09f') #括号内的内容相当于‘盐’
    hash.update('admin')
    print hash.hexdigest()
     
     
    还有一些内置模块之前写到过,可以转到其他博客看看

    python 内置模块-re

    Python 内置模块:os模块

    python内置模块-json和pickle

    python内置模块-random

    Python内置模块-time && datatime

    python 内置模块--collections

        
    模块功能
    __name__  只有在执行当前文件的时候,才等于__main__
    __file__  #当前文件的路径
    __doc__  #注释
    __cache__  #pyc文件
     
  • 相关阅读:
    cat > file << EOF 的用法
    jemter参数化是如何取值的?(数据分配)
    使用elasticdump迁移es数据
    阿里云SLB的http强制转https
    Centos7主机安装Cockpit管理其他主机
    CentOS 7配置Chrony服务进行时间同步
    Nginx负载均衡设置max_fails和fail_timeout
    openresty(nginx) 配置 stream 转发
    rabbitmq的内存节点和磁盘节点
    nginx实现vue的web页面项目集群负载
  • 原文地址:https://www.cnblogs.com/ernest-zhang/p/5635038.html
Copyright © 2020-2023  润新知