美文网首页
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