python 日志模块、OS模块、sys模块、随机模块、string模块

1.日志记录模块 logging

日志的几个级别 
 debug 
 info 
 warning 
 error 

 critical 

如:

import logging

logger = logging.getLogger(__name__) #相当于重命名

logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")
结果为:warning
    error
    critical

通过运行的结果可以看到,默认只打印warning及以上的信息。

可以设置告警级别:

import logging

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")
结果为:DEBUG:__main__:debug
    INFO:__main__:info
    WARNING:__main__:warning
    ERROR:__main__:error
    CRITICAL:__main__:critical
2.OS模块

os模块包含普遍的操作系统功能。

(1)os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; unix 返回’posix'.

import os

print(os.name)

结果为:nt #说明为Windows

>>> import os>>> print(os.name)posix #说明为Unix平台>>> 

在使用的时候就可以据此判断:

import os
if os.name == "nt":
    pass
elif os.name == "posix":
    pass

(2)os.getcwd()——得到当前工作的目录,相当于Linux中的pwd。

import os

print(os.getcwd())

结果为:E:\python

(3)os.listdir()——列出指定目录下所有的文件和目录名,相当于Linux中的ls。

import os

print(os.listdir("c:"))

结果为:['$GetCurrent', '$Recycle.Bin', '$SysReset']

以列表的形式全部列举出来,其中没有区分目录和文件。

(4)os.remove()——删除指定文件。

import os
os.remove("1.py")  直接删除当前目录下1.py文件

(5)os.rmdir()——删除指定目录。

(6)os.mkdir()——创建目录。

注意:这样只能建立一层,要想递归建立可用:os.makedirs()。

(7)os.path.isfile()——判断指定对象是否为文件。是返回True,否则False。

(8)os.path.isdir()——判断指定对象是否为目录。是True,否则False。

(9)os.path.exists()——检验指定的对象是否存在。是True,否则False。

在创建目录时,可以先进行判断,然后再创建。如:

import os

if not os.path.exists("test"):
    os.mkdir("test")

(10)os.path.split()——返回路径的目录和文件名。

import os

print(os.path.split("urls.py"))

结果为:('', 'urls.py')

此处只是把前后两部分分开而已,就是找最后一个'/'。

(11)os.system()——执行命令。

 os.system(cmd) 纯粹的执行系统命令,但是没有返回结果 
 result = os.popen(cmd) 
 result.read() 这样你就可以对reuslt进行控制了 

(12)os.chdir()——改变目录到指定目录,相当于Linux中的cd。

(13)os.path.abspath()——获得绝对路径

import os

print(os.path.abspath("test"))
结果为:E:\python\test
3.sys模块

(1)sys.argv 获取传入程序中的参数

import sys
print(sys.argv[0])  #代表文件名
print(sys.argv[1])  #传入的第一个参数
print(sys.argv[2])  #传入的第二个参数

(2)sys.stdout 重定向

f_handler=open('out.log', 'w')
sys.stdout=f_handler
print('hello')

相当于创建文件并写入内容。

4.random随机模块

(1)random.randint(a,b) 随机一个整数,a <= 随机数 <= b。

(2)random.randrange(1,100,2) 随机一个整数,但只能取1,3,5,7,9,11,13...

(3)random.sample([1,2,3,4,5],2)根据第二个参数取第一个参数的值,如当前:取[1,2,3,4,5]中随机的2个。

5.string模块

(1)string.ascii_letters 大小写字母

如:
import string

print(string.ascii_letters)
结果为:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

(2)string.digits 数字

(3)string.ascii_lowercase 小写字母

(4)string.ascii_uppercase 大写字母

(5)string.printable 所有可打印字符

(6)string.punctuation 特殊字符

(7)string.hexdigits 数字,小写字母,大写字母


练习:1.掷1000次骰子,计算各个朝上数字出现的次数?

import random
class ShanZi(object): 
    def __init__(self):   #实例化;定义每个面的初始值
        self.number1 = 0
        self.number2 = 0
        self.number3 = 0
        self.number4 = 0
        self.number5 = 0
        self.number6 = 0

    def count(self):   #计算每个面出现的次数
        for i in range(1,10001):
            number = random.randint(1,6)
            if number == 1:
                self.number1 += 1
            if number == 2:
                self.number2 += 1
            if number == 3:
                self.number3 += 1
            if number == 4:
                self.number4 += 1
            if number == 5:
                self.number5 += 1
            if number == 6:
                self.number6 += 1

    def cishu(self):    #将结果打印
        print("1:{0}".format(self.number1))
        print("2:{0}".format(self.number2))
        print("3:{0}".format(self.number3))
        print("4:{0}".format(self.number4))
        print("5:{0}".format(self.number5))
        print("6:{0}".format(self.number6))

def main():         #定义main函数,梳理流程。
    shanzi = ShanZi()
    shanzi.count()
    shanzi.cishu()

if __name__ == '__main__': 
    main()
结果为:1:1665
    2:1675
    3:1680
    4:1652
    5:1696
    6:1632
2.输出一个6位且包含大小写字母、数字的验证码?
import random
import string

print("".join(random.sample(string.hexdigits,6)))
结果为:E94Aa7




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值