python基础——logging、OS、sys、random、string模块(0424)

﹥>﹥吖頭↗ 提交于 2019-12-06 17:37:33

一、日志记录模块  logging

     logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

1、日志的级别(大写字母):一般清下只有警告和错误才会显示。

           DEBUG:详细的信息,通常只出现在诊断问题上。

           INFO:确认一切按预期运行

           WARNING:一个警告,可能会有一些意想不到的事情发生了,或表明一些问题在不久的将来

                 (例如。磁盘空间低”)。这个软件还能按预期工作。

           ERROR:更严重的问题,软件没能执行一些功能

           CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行

2、日志级别的关系

          CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

3、系统默认只打印 WARNING 及其以上的级别。(一般使用默认即可)

    示例

    结果

4、logging.basicconfig() 函数

  格式为logging.basicconfig(level=logging.WARNING,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt=' %Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')

     该函数的可选参数为 filename指定日志文件名;filemode指定日志文件打开的模式 w或a;level指定日志级别,默认为logging.WARNING(需要注意的是级别必须大写);format指定输出的格式和内容、datefmt指定时间格式。

    示例

    结果

    4.1 更改日志打印级别:level 设置为 DEBUG 级别,此时打印的结果最全。

    示例

    结果

    4.2  format 输出格式参数

          

    4.3 日志时间格式化 datefmt :该函数的参数通time() 的参数一样。

5、日志记录器 logger

     Logger从来不直接实例化,经常通过logging模块级方法logging.getLogger(name)来获得,其中如果name不给定就用root。

二、OS模块

1、os.name   如果结果为nt,为windows系统;结果为posix,则为Linux/Unix系统

2、os.system()   执行系统命令,但是没有返回结果

3、os.listdir(path)    返回指定目录下的所有文件和目录名。

4、os.getcwd()    得到当前工作目录,即当前Python脚本工作的目录路径

5、os.linesep   给出当前平台使用的换行符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

6、os.remove(path)  用来删除一个文件

7、os.chdir(dirname)  改变工作目录到dirname

8、os.mkdir("dirname") 生成单级目录;相当于shell中mkdir dirname

9、常用的语句:如果没有改文件,则创建改文件

     

10、os.path.abspath("./")      绝对路径

三、sys  模块

四、random 模块:返回随机生成的一个实数

1、随机整数    random.randint(a,b)           a,b之间随机取一个整数

2、随机浮点数   random.uniform(0,2.5)

3、从指定sequence中随机获取指定长度的片断并随机排列。random.sample(sequence, k)

     sample函数不会修改原来的list。

     参数sequence表示一个有序类型。从序列中获取一个随机元素.sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。K 指定长度。

4、将列表内的元素随机排列   random.shuffle(x[, random])

5、从指定范围内,按指定基数递增的集合中 获取一个随机数 random.randrange([start], stop[, step])

    random.randrange(10, 30, 2)结果相当于从[10, 12, 14, 16, ... 26, 28]序列中获取一个随机数。                   random.randrange(10, 30, 2)在结果上与 random.choice(range(10, 30, 2)) 等效。

6、从序列sequence中获取一个随机元素   random.choice(sequence)  

    list, tuple, 字符串都属于sequence。

   示例

   结果

7、实例:掷骰子,看1--6随机出现的次数

结果

五、string模块:主要用于对字符串进行操作。

1、string.ascii_letters  生成所有字母,从a-z 和A-Z

2、string.digits   生成所有数字,从0-9

3、string.ascii_lowercase   生成所有小写字母

4、string.ascii_uppercase  生成所有大写字母

5、string.printable    生成所有可打印字符

6、string.punctuation   生成所有特殊字符

7、string.hexdigits    生成十六进制数字

示例

结果

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!