python常用模块os sys time random logging等

python常用模块

  1. os
!-*- coding:utf-8 -*-
#date: 2020/4/17

import os
print(os.getcwd())  #获取当前路径
os.chdir('')        # 切换工作目录
os.curdir()            # .
os.pardir               # ..
os.mkdir('gao')                 # 当前工作目录下建立单层目录 \gao
os.makedirs('gao\\qi')         # 当前工作目录下建立层级目录 \gao\qi 目录
os.rmdir('gao\\qi')                 # 只删除最后一层单层目录,只删除空路径
os.removedirs('gao\\qi')        # 删除指定路径,只删除空路径
os.listdir(r'C:\Users\gaoqifa\Desktop\study\login') # 列表形式列出路径下所有内容
os.remove('aaaa')                 # 删除文件
os.rename("study_os.py","learn_os.py")  # 重命名
print(os.stat('春晓'))
s = os.sep            # 取出路径分隔符 win:\ linux:/
os.linesep              # 取出换行符 win:/r/n linux:/n
os.pathsep                # 取出文件路径分割符 win:; Linux::
print(os.system('dir'))        # python中使用cmd或shell命令等
print(os.environ)               # 获取环境变量
print(os.path.abspath('春晓'))        #根据相对路径获取绝对路径
print(os.path.abspath(__file__))      # 获取当前py文件所在路径
print(os.path.dirname(r'c:\use\eee\ppp\login'))          # 返回输入参数上一层级文件夹的绝对路径
print(os.path.basename(r'C:use\Desktop\gao'))   # 根据引入变量,返回文件名,或最终目录名
os.path.join([r'C:use\Desktop\gao',r'qi'])  # 与字符串的join函数类似,用于连接路径
  1. sys
#!-*- coding:utf-8 -*-
#date: 2020/4/17

import sys


print(sys.argv)     # 已列表方式打印出命令行输入的值 默认第一个参数为执行文件名 》 ['C:/Users/Desktop/study/login/learn_sys.py']

if sys.argv[0] == 'post':
    print("post success")

sys.exit()          # 退出程序,正常退出时,exit(0)
print(sys.version)    # 获取当前python的版本信息  》 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
print(sys.path)         # 获取当前的模块使用路径
需要调用自定义模块 添加模块使用路径
sys.path.append(r'C:\User\object') # 注意 添加模块路径使用绝对路径
print(sys.platform)                     # 系统平台信息 》 win32

sys.stdout.write('please:')             # 标准输出 由于打印一般当执行完成,才会统一输出,比如用到进度条时,需要时刻刷新 故需要用到此函数
sys.stdout.flush()                      # 立即刷新标准输出
# 简单的实时进度条代码:
import time
for i in range(30):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(1)

sys.argv
3. time

import time

print(time.time())          # 获取当前时间戳 1587118642.6632118
print(time.ctime())         # 获取日期时间 Fri Apr 17 18:17:22 2020
time.sleep(3)             # 系统休眠
print(time.clock())         # cpu运行时间 2e-07
print(time.gmtime())        # utc时间(本初子午线当前时间)time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour=10, tm_min=11, tm_sec=31, tm_wday=4, tm_yday=108, tm_isdst=0)
print(time.localtime())     # 本地时区时间(中国,东八区)   time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour=18, tm_min=11, tm_sec=31, tm_wday=4, tm_yday=108, tm_isdst=0)
print(time.strftime('%Y-%m-%d%H,%M,%S,%z')) # 自定义字符串格式 输出当前时间   !格式化时间 2020-04-1718,11,31,+0800
a = time.strptime("2020-03-01 10,10,10","%Y-%m-%d %H,%M,%S") # 自定义格式 读取字符串时间 返回结构化时间
print(a.tm_year)            #按结构话时间,获取所需  #2020
# 时间戳
print(time.mktime(a))       # 按结构化时间 获取时间戳 1583028610.0
  1. random
import random
# 建立5位的随机码
#第一种方式
def code():
    num = ''
    for i in range(5):
        add_al = chr(random.randrange(65, 91))
        add_num = str(random.randrange(0, 10))
        add = random.randrange(0, 2)
        if add == 0:
            num = "".join((num,add_al))
        else:
            num = "".join((num,add_num))

    print(num)
code()

第二种方式
def code2():
    num = ''
    for i in range(5):
        add = random.choice((chr(random.randrange(65,91)),str(random.randrange(0,10))))
        num = ''.join((num,add))
    print(num)
code2()
  1. logging
#!-*- coding:utf-8 -*-
#date: 2020/4/17

import logging

# level     默认为warning最低打印级别,可指定设置
# format    设定日志输出格式 asctime:记录时间、filename:记录记录日志的脚本文件名称、lineno:记录脚本文件的多少行执行的日志记录、levelname:日志等级名称、message:记录消息内容
# datefmt   时间格式
# filename  保存日志的文件名称 不增加filename字段默认使用终端打印方式提示,增加filename字段表示使用文件记录
# filemode  设置对文件的操作:r读 w写 a增
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s >>> %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    filename='test.log',
                    filemode='a'
                    )
logging.debug("debug")
logging.info("info")
logging.warning('warming')
logging.error("error")
logging.critical('critical')

结果:

2020-04-17 20:59:01 learn_logging.py[line:22] DEBUG >>> debug
2020-04-17 20:59:01 learn_logging.py[line:23] INFO >>> info
2020-04-17 20:59:01 learn_logging.py[line:24] WARNING >>> warming
2020-04-17 20:59:01 learn_logging.py[line:25] ERROR >>> error
2020-04-17 20:59:01 learn_logging.py[line:26] CRITICAL >>> critical

上述代码只能做到将日志记录到一处(文件或控制台),需要同时保存到文件,且在控制台打印的方法如下:

import logging
# 取出logger对象
# 此函数也可进行设置记录人员信息,记录最低层级等 # logger = logging.getLogger('root',level=logging.INFO)
logger = logging.getLogger()

# 创建一个handler对象,用于写入日志文件
fh = logging.FileHandler('test1.log')

# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()

# 标准输出格式对象
formatter = logging.Formatter('%(asctime)s - [%(filename)s:%(lineno)d - %(levelname)s - %(message)s')

# 文件输出调取日志标准输出格式
fh.setFormatter(formatter)
# 控制台输出调取日志标准输出格式
ch.setFormatter(formatter)

# logger 增加日志文件输出方式
logger.addHandler(fh)
# logger 增肌日志控制台输出方式
logger.addHandler(ch)

# 设置最低记录级别
logger.setLevel(logging.DEBUG)

# 此时打印,会同时输出到文件与控制台
logger.debug("debug") #2020-04-17 21:40:25,493 - [learn_logging.py:51 - DEBUG - debug
logger.info("info") #2020-04-17 21:40:25,493 - [learn_logging.py:52 - INFO - info
logger.warning('warming') #2020-04-17 21:40:25,493 - [learn_logging.py:53 - WARNING - warming
logger.error("error") #2020-04-17 21:40:25,493 - [learn_logging.py:54 - ERROR - error
logger.critical('critical') #2020-04-17 21:40:25,493 - [learn_logging.py:55 - CRITICAL - critical

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值