• python模块(一)


    1.logging

    import logging
    logging.debug('This is debug message')
    logging.info('This is info message')
    logging.warning('This is warning message')


    默认情况下,logging将日志打印到屏幕,日志级别大小关系为:
    CRITICAL>ERROR>WARNING>INFO>DEBUG>NOTSET,当然也可以自定义日志级别
    DEBUG:详细的信息,通常只出现在诊断问题上.
    INFO:确认一切按预期运行.
    WARNING:一个警告,可能会有一些意想不到的事情
    发生了,或表明一些问题将在不久的将来(例如,'磁盘空间低').这个软件还能按预期工作.
    ERROR:一个更严重的问题,这表明程序本身可能无法继续运行.
    CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行.

    logging默认的日志级别是info

    配置日志级别:
    logging.basicConfig(level=__debug__,format='')
    logger=logging.getLogger(__name__)

    __name__指的就是__main__

    2.os

    通过os模块调用系统命令,
    获得路径,获取操作系统的类型等都是使用该模块
    1.通过os获取系统类型
    import os
    print(os.name)
    这个就是查看我们系统的类型,如果是windows系统,os.name='nt',
    如果是linux系统,os.name='posix',
    2.执行系统命令
    import os
    os.system('ipconfig')
    content=os.popen('ipconfig').read()
    print(content.find('192.168.48.1'))

    该代码调用了windows系统的ipconfig命令,ipconfig是用来查看windows系统

    用os.popen获取系统命令执行的结果,方法返回一个file对象,
    通过file.read()来获得最后系统命令最终结果;

    3.文件和目录的操作
    import os
    print(os.getcwd())

    获得路径
    os.chdir('d:')//进入d盘
    print(os.getcwd())//当前文件的路径
    os.chdir(r'E: est')//r表示不需要转义

    #当前目录切换到d:目录下,再切换回来
    print(os.listdir(os.getcwd()))

    #列出C:Python27目录下的文件

    os.mkdir('abc')
    在当前目录下创建abc目录;

    os.remove('1.txt')
    删除当前目录下的1.txt文件,如果文件不存在会报错.


    print(os.linesep)
    打印操作系统的分隔符,linux系统的分隔符 ,windows系统的分隔符
    mac系统的分隔符

    print(os.path.join(os.getcwd(),'abc.txt'))

    print(os.path.islink(os.getcwd()))

    print(os.path.join(os.getcwd(),'abc.txt'))
    只是拼接,并不创建
    path1=os.path.join(os.getcwd(),'abc.txt')
    print(os.path.split(path1))
    把最后文件和目录分开;

    print(os.path.splitdrive(path1))
    把最初的目录和后面分开;

    print(os.path.splitext(path1))
    把目录和后缀名分开

    os.path.dirname(r'E: est est.py')
    获得E: est est.py文件的目录


    if not os.path.exists('test'):
    os.makedirs('test')
    else:
    print('test mulu is exist')

    os.path.join(os.getcwd,'aaa','bbb','ccc')
    拼接出来多级目录

    3.command

    commands.getoutput(cmd)//只有返回结果,没法判断执行结果是否正常;

    只返回执行shell命令的结果,shell的变量赋值不能有空格
    import commands

    cmd='ls /home/admin'
    a=commands.getoutput(cmd)
    print(type(a))
    print(a)


    cmd = 'ps -ef'
    status,result =commands.getstatusoutput(cmd)
    第一个值接收状态码,int类型, 返回0,说明执行正常
    第二个值接收返回结果,返回str类型

    print(type(result))
    print(type(status))

    4.sys

    1.通过sys模块获取程序参数
    import sys

    print(argv[0])第一个参数是文件本身

    2.sys.stdinstdoutstderr
    功能:stdin,stdout,以及stderr变量包含与标准I/O流对应的流对象.如果需要
    更好地控制输出,而print不能满足你的需求,它们就是所需要.


    2.1sys.stdout 与print
    当我们在python中打印对象用print obj 的 时候,事实上是调用了sys.stdout.write(obj+' ')

    ansible -i 1.txt all -m shell -a 'w'

    2.2sys.stdin与raw_input

    import sys
    name=raw_input('raw_input_name:')
    print(name)

    age=sys.stdin.readline('Please input your age:')
    print(age)


    f=open('1.log','w')
    sys.stdout=f
    print 'hello'

    在当前目录下,生成一个1.log,文件内容为hello

    def hello():
    print('hello world')
    sys.exitfunc=hello
    print('start')
    sys.exit(1) 退出自动调用hello
    print('end')

  • 相关阅读:
    2019-9-2-C#命令行解析工具
    2018-9-20-断点调试-Windows-源代码
    2018-9-20-断点调试-Windows-源代码
    2018-8-10-dot-net-core-使用-IPC-进程通信
    2018-8-10-dot-net-core-使用-IPC-进程通信
    Java实现 LeetCode 592 分数加减运算(纯体力活)
    Java实现 LeetCode 590 N叉树的后序遍历(遍历树,迭代法)
    Java实现 LeetCode 590 N叉树的后序遍历(遍历树,迭代法)
    Java实现 LeetCode 590 N叉树的后序遍历(遍历树,迭代法)
    Java实现 LeetCode 589 N叉树的前序遍历(遍历树)
  • 原文地址:https://www.cnblogs.com/awenxianliao/p/7818064.html
Copyright © 2020-2023  润新知