os模块与日志模块总结

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个,从低到高分别是:

  1. DEBUG:程序调试bug时使用。

  1. INFO:程序正常运行时使用。

  1. WARNING:程序未按预期运行时使用,但并不是错误,如用户登录密码错误。

  1. ERROR:程序出错误时使用,如:IO操作失败

  1. 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] 程序报错

更多用法,欢迎小伙伴后台留言哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值