美文网首页
python常用标准库

python常用标准库

作者: _karen | 来源:发表于2020-10-10 18:06 被阅读0次

    python常用的标准库及模块

    • 操作系统相关 os sys
    • 时间与日期 time datetime (datetime是time的一个二次封装)
    • 科学计算 math
    • 网络请求 urllib
    • 随机函数 random
    • 日志 logging
    【一】操作系统相关 os sys

    1.os模块主要是对文件和目录的操作
    2.常用方法

    os.mkdir("test") # 创建目录
    os.removedirs("test") # 移除目录
    os.getcwd() # 获取当前目录
    os.path.exists("dir or file ") # 判断文件或目录是否存在

    代码常用方法实现:判断文件或者目录是否存在,不存在的话创建和写入

    if not os.path.exists("testb"):
        os.mkdir("testb")
    else:
        os.removedirs("testb")
    if not os.path.exists("testb/testdemo.txt"):
        f = open("testb/testdemo.txt", "w", encoding="utf-8")
        f.write("我要写入的内容")
        f.close()
    
    【二】时间与日期 time datetime

    time模块常用的方法:

    time.asctime() # 国外的时间格式
    time.time() # 不传参数返回当前时间的时间戳,传参返回参数对应的时间戳
    time.sleep(2) # 等待
    time.localtime() # 时间戳转换成时间元组
    time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) # 讲当前的时间戳转换成带格式的时间
    ctime() # 输出当前时间 格式:Sat Oct 10 17:32:14 2020

    代码实现获取三天后的时间:

    t = time.time() + 3*24*60*60
    # 输出 time.struct_time(tm_year=2020, tm_mon=10, tm_mday=13, tm_hour=17, tm_min=39, tm_sec=18, tm_wday=1, tm_yday=287, 
    # tm_isdst=0) 
    print(time.localtime(t))
    # 输出2020-10-13 17:39:18
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t)))
    

    datetime
    常用方法

    datetime.datetime.now() 返回当前的日期和时间
    date() 返回当前时间的日期
    time() 返回当前的时间对象
    utctimetuple() 返回UTC时间元组
    datetime.date.today() 这种用法直接返回了当前的日期
    datetime.date.fromtimestamp()这种方式返回与时间戳对应的日期

    由于datetime模块中封装了time模块,所以我们使用datetime模块可以保证数据更为精确,在使用过程中也可以穿插着time模块中的部分功能,例如暂停time.sleep()等方法。

    【三】科学计算 math

    常用方法

    math.pi # 常量pi
    math.ceil(x) # 返回大于等于x的最小整数
    math.floor(x) # 返回小于等于x的最大整数
    round() # 四舍五入,但这个不在math模块内,可以直接用
    math.sqrt(x) # 求x的平方根
    pow(x,y) # 返回的是x的y次幂

    【四】网络请求 urllib

    python2 urllib2
    python3 urllib
    常用:urllib.request
    目前流行的是在urllib.request上进行封装的requests

    【五】随机random

    random模块中几个常用函数

    函数名 功能
    random.random() 生成一个[0,1)的实数。
    random.randint(a,b) 生成一个[a,b]的数字,包含a和b。
    random.randrange(a,b) 生成一个[a,b)的数字,包含a,不包含b。
    random.shuffle(x) 把序列x打乱。
    random.choice(x) #从x中返回一个随机项,x需要是一个可变序列。
    random.uniform(a,b) 生成一个a,b之间的浮点数,区间可以是浮点数。

    【六】日志操作logging

    作用:配置logging基本的设置,然后在控制台输出日志,level:设置日志级别,默认为logging.WARNNING;
    常用的代码实现:

    import logging
    logging.basicConfig(level=logging.DEBUG, format="%(asctime)s-%(name)s-%(levelname)s-%(message)s")
    logger = logging.getLogger(__name__)
    logger.info("start log 1")
    logger.debug("debug日志")
    logger.warning("waring logging")
    logger.info("logging done")
    

    logging.basicConfig.format 可以指定格式,常用参数如下:

    参数:作用
    %(levelno)s:打印日志级别的数值
    %(levelname)s:打印日志级别的名称
    %(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
    %(filename)s:打印当前执行程序名
    %(funcName)s:打印日志的当前函数
    %(lineno)d:打印日志的当前行号
    %(asctime)s:打印日志的时间
    %(thread)d:打印线程ID
    %(threadName)s:打印线程名称
    %(process)d:打印进程ID
    %(message)s:打印日志信息

    将日志同时输出到屏幕和日志文件:

    import logging
    logger = logging.getLogger(__name__)
    logger.setLevel(level = logging.INFO)
    handler = logging.FileHandler("log.txt")
    handler.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
     
    console = logging.StreamHandler()
    console.setLevel(logging.INFO)
     
    logger.addHandler(handler)
    logger.addHandler(console)
     
    logger.info("Start print log")
    logger.debug("Do something")
    logger.warning("Something maybe fail.")
    logger.info("Finish")
    

    相关文章

      网友评论

          本文标题:python常用标准库

          本文链接:https://www.haomeiwen.com/subject/pusjpktx.html