函数模块

一、sys函数模块详解

  1、sys.argv[x]

    功能:从程序外部接受参数,接收的参数个数可以是多个,在程序内部sys.argv吧这些外部参数转换成元组的形式,然后以索引x的方式在内部取出并应用。当x=0的时候程序内部取出的是该文件的绝对路径,当x=1的时候程序内部取出的是外部程序传入的第一个参数,以此类推。

  2、sys.exit(n)

    功能:当函数调用该模块时, 引发一个 SystemExit异常,若没有捕获这个异常,Python解释器会直接退出;捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。而os._exit() 直接退出 python程序,其后的代码也不会继续执行.

  3、sys.path

    功能:用于指定第三方模块和自定义模块的搜索路径以及搜索顺序。所以自己写的函数模块应当放到sys.path指定的模块路径中去,如果不想放也可以把自定义的模块路径通过sys.path.append('引用的模块路径')的方式添加到需要应用该模块的文件中去。

    注:如果创建一个以.py结尾的文件名和第三方模块以及自定义模块重名时,当在该文件相同路径下调用重名的模块时,一定会报错。
二、logging模块

  1、logging.basicConfig函数

  1.1 通过logging.basicConfig函数对日志的输出格式及方式做相关配置

    import logging
    logging.basicConfig(level=logging.DEBUG,
                format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                datefmt='%a, %d %b %Y %H:%M:%S',
                filename='myapp.log',
                filemode='w')

    logger.debug('logger debug message')

    logger.info('logger info message')

    logger.warning('logger warning message')

    logger.error('logger error message')

    logger.critical('logger critical message')

  1.2 logging.basicConfig函数配置说明

    filename: 指定日志文件名
    filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
    format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:

      %(levelno)s: 打印日志级别的数值
      %(levelname)s: 打印日志级别名称
      %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
      %(filename)s: 打印当前执行程序名
    %(funcName)s: 打印日志的当前函数
    %(lineno)d: 打印日志的当前行号
    %(asctime)s: 打印日志的时间
    %(thread)d: 打印线程ID
      %(threadName)s: 打印线程名称
      %(process)d: 打印进程ID
    %(message)s: 打印日志信息
    datefmt: 指定时间格式,同time.strftime()
    level: 设置日志级别,默认为logging.WARNING
    stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

  2、日志默认的等级顺序

    日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别。

   3、logging的四大类

    logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则       返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。

    handler:将(logger创建的)日志记录发送到合适的目的输出;个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现      日志分级过滤显示。

    filter:提供了细度设备来决定输出哪条日志记录;即提供一种优雅的方式决定一个日志记录是否发送到handler。

    formatter:决定日志记录的最终输出格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。  

   4、四大类详解

    4.1 创建一个logger 》》》logger = logging.getLogger()

    4.2 创建一个handler,用于写入日志文件 》》》fh = logging.FileHandler('文件的绝对路径或者是相对路径')

        创建一个handler,用于输出到控制台 》》》ch = logging.StreamHandler() #由于是输出到控制台所以括号内不写内容更

    4.3 定义handler的输出格式formatter

          formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

          fh.setFormatter(formatter)

         ch.setFormatter(formatter)

   4.4 定义一个filter

      filter = logging.Filter('mylogger.child1.child2')

      fh.addFilter(filter)

   4.5 给logger添加handler  》》》logger.addFilter(filter)

   4.6记录一条日志

      logger.debug('logger debug message')

      logger.info('logger info message')

      logger.warning('logger warning message')

      logger.error('logger error message')

      logger.critical('logger critical message')

三、序列化模块

  1、序列化的定义:由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。

  2、反序列化的定义:把序列化后的对象从新读取到内存中称之为反序列化。(从磁盘和其他介质中读取出来)

  3、python中可以使用 Pickle 和 json, 以及自定义序列化反序列化函数进行处理需要序列化的数据。json只能处理一些简单的数据序列化,建议使用Pickle。

  4、json模块序列化和反序列化详解。

    4.1json的dumps方法和loads方法,可实现数据的序列化和反序列化。具体来说,dumps方法,可将json格式数据序列为python的相关的数据类型;loads方法则是相反,把python数据类型转换为json相应的数据类型格式要求。

    4.2格式:json.dumps(序列化对象) #只能序列化一些简单的对象,序列化后的对象是用双引号引起来的

         json.loads(反序列化对象)#反序列化的对象必须是用双引号引起来,且必须先序列化后才能反序列化

    4.3步骤:1.先序列化对象       2.把序列化成的字符串写入文件

         1.先打开序列化的文件    2.反序列化文件对象

  5、pickle模块序列化和反序列化

    5.1过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存

    5.2格式:pickle.dump(序列化文件对象,序列化文件对象保存位置文件)#吧序列化对象保存在文件中需要以wb二进制的形式保存。

         pickle.load(打开后的反序列化对象文件)#使用的时候只需要以rb二进制的形式把文件打开,然后用pickle.load读取数据就可以了。

    5.3步骤:1.先打开文件,再序列化对象

         2.先打开文件,再反序列化

    注:无论是哪个模块序列化和反序列化打开的文件都需要打开后及时关闭。

python基础12 ---函数模块2的更多相关文章

  1. python基础11 ---函数模块1

    函数模块 一.函数模块的作用(为什么要有函数模块) 1.函数模块可以减少代码量 2.函数模块方便阅读 3.函数模块维护性强二.函数模块的本质以及调用方法 1.函数模块的本质就是一个.py结尾的文件,该 ...

  2. 2015/9/15 Python基础(12):模块和包

    模块是用来组织 Python 代码的方法,而包则是用来组织模块的. 当代码量很大时,我们一般会把代码分成几个有组织的代码段,然后每个代码段之间有一定的联系.代码单之间是共享的,所以Python允许调入 ...

  3. python基础14 ---函数模块5(模块和包)

    模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文 ...

  4. python基础13 ---函数模块3(正则表达式)

    正则表达式 一.正则表达式的本质 1.正则表达式的本质(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的 ...

  5. python基础(12):函数(二)

    1. 函数参数 之前我们说过了传参,如果我们需要给⼀个函数传参,⽽参数⼜是不确定的,或者我给⼀个函数传很多参数,我的形参就要写很多,很⿇烦,怎么办呢,我们可以考虑使⽤动态参数. 形参的第三种: 动态参 ...

  6. python基础14 ---函数模块4(configparser模块)

    configparser模块 一.configparser模块 1.什么是configparser模块:configparser模块操作配置文件,配置文件的格式与windows ini和linux的c ...

  7. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  8. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  9. python基础31[常用模块介绍]

    python基础31[常用模块介绍]   python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...

随机推荐

  1. Laravel之哈希/常用函数/分页

    一.哈希 1.简介Laravel Hash 门面为存储用户密码提供了安全的Bcrypt 哈希算法.如果你正在使用Laravel 应用自带的AuthController 控制器,将会自动为注册和认证使用 ...

  2. USB驱动 | win10下使用console线错误代码10解决办法

    驱动安装后如果无法使用,错误代码10, 原因:系统自动安装了新版本的驱动,回滚到老版本即可

  3. Java注解基本介绍

    注解(Annotation),又称元数据(MetaData),提供了一种在代码中添加信息的形式化的方法,将元数据和源代码结合在一起. 1. 外部配置文件如XML存在的问题: 代码复杂度较高,需要编写很 ...

  4. Git合并分支命令参数详解:git merge --ff

    今天研究了一下git merge命令常用参数,并分别用简单的例子实验了一下,整理如下: 输入命令git merge -h可以查看相关参数: --ff  快速合并,这个是默认的参数.如果合并过程出现冲突 ...

  5. c#创建对象并动态添加属性

    //动态类,可以作为基类被继承 dynamic backObj = new ExpandoObject(); //ExpandoObject 为密封类 backObj.image0 = IMGNAME ...

  6. Https单向认证和双向认证介绍

    一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...

  7. MongoDB 常见的查询索引

    常见的查询索引 _id索引         _id 索引是绝大多数集合默认建立的索引.对于每一个插入的数据.MongoDB 会自己主动生成一条唯一的 _id 字段. 1 2 3 4 5 6 7 8 9 ...

  8. SpringCloud系列五:为Eureka Server添加用户认证及元数据

    1. 回顾 上一篇博客讲解了Eureka集群及将微服务注册到集群上.在前面的讲解中,Eureka Server都是允许匿名访问的,本次将讲解如何构建一个需要登录才能访问的Eureka Server. ...

  9. Unmapped Spring configuration files found.

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架后,IDEA弹出如下提示: 2.解决方案: File --> Project Structure --> M ...

  10. GetTickCount()函数的陷阱!

    开发中经经常使用GetTickCount()函数来进行间隔时间的推断.如推断某一段代码运行花了多少时间等,使用比較方便. 可是仅仅针对寻常的一些測试.近期开发一个服务程序时,也在代码中用GetTick ...