Hello,大家好。本期来和大家一起学习一下os和日志模块的相关知识。
os模块
1.获取当前工作目录(绝对路径)。
import osprint(os.getcwd())
2.拿到某路径下的所有文件。
import os
# ----绝对路径下的所有文件。
print(os.listdir('D:\新建文件夹 (4)\测试'))
# ----当前路径下的所有文件。
print(os.listdir('.'))
# ----上一级路径下的所有文件。
print(os.listdir('..'))
3.文件夹操作
import os
# 创建文件夹,已存在则报错
os.mkdir('dir1')
# 删除空目录,若目录不为空则无法删除并报错
os.rmdir('dir1')
# 删除文件
os.remove('aaaa.py')
# 重命名文件/目录
os.rename('oldname','newname')
4.路径操作
import os
# 判断路径是否存在 文件和文件夹都可以 如果path存在,返回True;如果path不存在,返回False
print(os.path.exists('D:\新建文件夹 (4)\测试\文件3.txt'))
# 将path分割成 目录 和 文件名 以元组返回
print(os.path.split('D:\新建文件夹 (4)\测试\文件3.txt'))
# 拼接一个绝对路径.
print(os.path.join('D:\\', 'f', 'd.txt'))
# 判断是否为文件,返回True。否则返回False
print(os.path.isfile('D:\新建文件夹 (4)\测试\文件3.txt'))
# 判断是否为目录,返回True。否则返回False
print(os.path.isdir('D:\新建文件夹 (4)\测试'))
5.执行终端命令(了解)
import os
# 运行终端命令(了解)
print(os.system('ipconfig'))
print(os.system('C:\\Windows\\System32\\calc.exe'))
sys模块
1.默然情况下python导入文件或者模块的话,他会先在sys.path里找模块的路径。如果没有的话,程序就会报错。
import sys
print(sys.path)
2.退出程序
sys.exit()
3.获取从程序外部输入的参数
import sys
print(sys.argv)
'''
本质为列表,第一个参数为程序当前路径,
其他参数为用户从程序外部输入的参数。
'''
日志模块
日志等级可以分为5个,从低到高分别是:
DEBUG:程序调试bug时使用。
INFO:程序正常运行时使用。
WARNING:程序未按预期运行时使用,但并不是错误,如用户登录密码错误。
ERROR:程序出错误时使用,如:IO操作失败
CRITICAL:特别严重的问题,导致程序不能再继续运行时使用,如:磁盘空间为空,一般很少使 用
默认使用的是WARNING等级,当在WARNING或WARNING之上等级的才记录日志信息。
日志等级从低到高的顺序是: DEBUG < INFO < WARNING < ERROR < CRITICAL
import logging
logging.debug('这是⼀个debug级别的⽇志信息')
logging.info('这是⼀个info级别的⽇志信息')
logging.warning('这是⼀个warning级别的⽇志信息')
logging.error('这是⼀个error级别的⽇志信息')
logging.critical('这是⼀个critical级别的⽇志信息')
运行结果:
WARNING:root:这是⼀个warning级别的⽇志信息
ERROR:root:这是⼀个error级别的⽇志信息
CRITICAL:root:这是⼀个critical级别的⽇志信息
日志信息只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING。
将日志信息保存到日志文件的示例代码:
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
filename="log.txt",
filemode="w")
logging.debug('这是⼀个debug级别的⽇志信息')
logging.info('这是⼀个info级别的⽇志信息')
logging.warning('这是⼀个warning级别的⽇志信息')
logging.error('这是⼀个error级别的⽇志信息')
logging.critical('这是⼀个critical级别的⽇志信息')
level:表示设置的日志等级
format:表示日志的输出格式, 参数说明:
%(levelname)s: 打印日志级别名称
%(filename)s: 打印当前执行程序名
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(message)s: 打印日志信息
自定义日志模块
import time
def nowTime():
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
def Message(message, color='Green'):
'''
颜色控制:\033 + [ + 颜色代码 + m (\033[32m)
关闭:[0m
'''
if color == 'Green':
print(f'{nowTime()} [INFO] \033[32m{message}\033[0m')
elif color == 'Red':
print(f'{nowTime()} [INFO] \033[31m{message}\033[0m')
else:
print(f'{nowTime()} [INFO] {message}')
Message('程序运行中', 'Green')
Message('已完成任务', 'Green')
Message('程序报错', 'Red')
运行结果:
2023-02-14 18:11:04 [INFO] 程序运行中
2023-02-14 18:11:04 [INFO] 已完成任务
2023-02-14 18:11:04 [INFO] 程序报错
更多用法,欢迎小伙伴后台留言哦。