python常用模块

来源:互联网 发布:手机淘宝红包链接转换 编辑:程序博客网 时间:2024/06/07 05:02
  1. logging
    日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改
    logging将日志打印到屏幕,日志级别大小关系为:
    CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别
    默认logging默认的日志级别是info
    日志的输出格式及方式 logging.basicConfig

    import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt=' %Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')logger = logging.getLogger(__name__)logging.debug('This is debug message')logging.info('This is info message')logging.warning('This is warning message')
    logging.getLogger([name]):创建一个日志对象
    返回一个logger实例,如果没有指定name,返回root
    logger,只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。只要知道name,就能得到同一个logger实例。
    logging.getLogger(name) 在上述实例中__name__就指的是__main__。


  2. OS模块
    可以通过os模块调用系统命令,获得路径,获取操作系统的类型等都是使用该模块。
    a、通过os 获取系统类型:os.name()
    import os
    print(os.name)
    b、执行系统命令:
    os.system('命令') 只会调用系统的命令
    os.popen('命令') os.popen方法,os.popen()返回的是一个file对象
    c、目录和文件相关操作
    os.getcwd() : 获取路径
    os.chdir() : 切换目录
    os.listdir() : 列出目录文件 返回一个列表
    os.mkdir() : 创建目录
    os.remove() : 删除目录下的文件
    os.linesep : 打印操作系统的分隔符
    os.path.join(os.getcwd(), 'aaa', ‘bbb’, ‘ccc’) : 拼接出来多级目录
    os.path.split('文件或者目录'): 把最后文件和目录分开
    os.path.splitext('文件') : 把文件的后缀名和前面分开,返回一个tuple
    os.path.splitdrive('目录') : 目录和后面分开

  3. command模块
    通过python调用系统命令 只适用于linux。
    commands是提供linux系统环境下支持使用shell命令的一个模块。
    commands.getoutput(cmd),只返回执行shell命令的结果。

    import commandscmd = 'ls /opt'a = commands.getoutput(cmd)print(type(a))print(a)
    commands.getstatusoutput(cmd)
    import commandscmd = 'ls /home/admin'c = commands.getstatusoutput(cmd)print(type(c))status, output = commands.getstatusoutput(cmd)print(status)print(output)print(type(output))
    返回结果是一个tuple,第一个值是shell执行的结果,如果shell执行成功,返回0,否则,为非0,第二个是一个字符串,就是我们shell命令的执行结果,python通过一一对应的方式复制给status和output。

  4. sys模块
    通过sys模块获取程序参数,python的sys模块默认是把第一个参数默认是程序本省,从第二个参数起都是代码后面跟着的参数,通过sys.arg[n]就可以获得传入到程序中的参数。
    import sysdef usage():    '''usage'''    print 'Usage: %s %s %s %s' % (sys.argv[0], 'tokenid', 'Subject', 'Content')    sys.exit()def main():    if len(sys.argv) != 4:        usage()    else:        print(sys.argv[0])        print(sys.argv[1])        print(sys.argv[2])        print(sys.argv[3])if __name__ == "__main__":    main()
    sys.stdin\stdout\stderr
    功能:stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或
    者以非标准的方式处理它们。
    sys.stdout 与print
    当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了sys.stdout.write(obj+'\n'),print 将你需要的内容打印到了控制台,然后追加了一个换行符,print 会调用 sys.stdout 的 write 方法。
    捕获sys.exit(n)调用
    功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)
    exitfunc()函数,及当执行sys.exit(1)的时候,调用exitfunc()函数 sys.exit(1)后面的内容就不会执行了,因为程序已经退出。