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")
网友评论