python 第三方模块之 logging 、os 、 random

logging模块

日志的几个级别

debug
info
warning
error
critical

基本用法

import logging
import sys

# 获取logger实例,如果参数为空则返回root logger
logger = logging.getLogger("AppName")

# 指定logger输出格式
formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')

# 文件日志
file_handler = logging.FileHandler("test.log")
file_handler.setFormatter(formatter)  # 可以通过setFormatter指定输出格式

# 控制台日志
console_handler = logging.StreamHandler(sys.stdout)
console_handler.formatter = formatter  # 也可以直接给formatter赋值

# 为logger添加的日志处理器
logger.addHandler(file_handler)
logger.addHandler(console_handler)

# 指定日志的最低输出级别,默认为WARN级别
logger.setLevel(logging.INFO)

# 输出不同级别的log
logger.debug('this is debug info')
logger.info('this is information')
logger.warn('this is warning message')
logger.error('this is error message')
logger.fatal('this is fatal message, it is same as logger.critical')
logger.critical('this is critical message')

# 2018-04-25 21:04:44,687 INFO    : this is information
# 2018-04-25 21:04:44,698 WARNING : this is warning message
# 2018-04-25 21:04:44,698 ERROR   : this is error message
# 2018-04-25 21:04:44,698 CRITICAL: this is fatal message, it is same as logger.critical
# 2018-04-25 21:04:44,699 CRITICAL: this is critical message

# 移除一些日志处理器
logger.removeHandler(file_handler)

os 模块

常见函数列表

os.sep:取代操作系统特定的路径分隔符
os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
os.getenv()和os.putenv:分别用来读取和设置环境变量
os.listdir():返回指定目录下的所有文件和目录名
os.remove(file):删除一个文件
os.stat(file):获得文件属性
os.chmod(file):修改文件权限和时间戳
os.mkdir(name):创建目录
os.rmdir(name):删除目录
os.removedirs(r“c:\python”):删除多个目录
os.system():运行shell命令
os.exit():终止当前进程
os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
os.path.split():返回一个路径的目录名和文件名
os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件
os.path.existe():检验给出的路径是否真的存在
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录('.'os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是目录,不是目录就返回false
os.path.isfile(name):判断name这个文件是否存在,不存在返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):或得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
os.path.isabs():判断是否为绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名和扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径

例如:

import os

print(os.name)

if os.name == "nt":
    cmd = "ipconfig"
elif os.name == "posix":
    cmd = "ifconfig"

# os.system(cmd)

print(os.listdir("C:"))   #列出当前目录, ls
# os.chdir("..")   #改变目录, cd
print(os.listdir())
print(os.getcwd())  #pwd
# os.mkdir("test")
# os.remove("myapp.log")
# os.rmdir("test")
# os.rename("demon1.py", "demon111.py")
print(os.linesep)
# windows换行符\n\r  linux换行符\n   mac \r

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

print(os.path.abspath("./"))
print(os.path.split("E:\LivePython1\第十一课"))

sys 模块

import sys  
print(sys.argv)     #命令行参数List,第一个元素是程序本身路径  
print(sys.version)  #获取Python解释程序的版本信息  
print(sys.path)     #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值  
print(sys.platform) #返回操作系统平台名称  
sys.stdout.write('please:')   #标准输出,写入字符串输出到屏幕  
val = sys.stdin.readline()[:-1]   #标准输入  
print(val)  
sys.exit(0)         #退出程序,正常退出时exit(0)  

random 模块

random.randint

  random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

print random.randint(12, 20)  #生成的随机数n: 12 <= n <= 20  
print random.randint(20, 20)  #结果永远是20  
#print random.randint(20, 10)  #该语句是错误的。下限必须小于上限。  

下面一个例子,掷骰子游戏,,统计掷6000次,每个点数分别出现的次数

import random


class NumberCount(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, 6001):
            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 getResult(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))

if __name__ == "__main__":
    numberCount = NumberCount()
    numberCount.count()
    numberCount.getResult()

random.sample

  random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

import random

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(list, 5)  #从list中随机获取5个元素,作为一个片断返回
print(slice)
print(list) #原有序列并没有改变。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值