时间模块

#user:Administrator
#date:2019/11/13 0013

import time
# print(help(time))

# print(time.time())  #结果:1573655126.5573525 从1970年到现在的时间
# time.sleep(3)
# print(time.clock()) #计算CPU执行时间

# print(time.gmtime())    #世界标准时间time.struct_time(tm_year=2019, tm_mon=11, tm_mday=13, tm_hour=14, tm_min=39, tm_sec=38, tm_wday=2, tm_yday=317, tm_isdst=0)

# print(time.localtime())     #本地时间

# ss = time.localtime()
# print(time.strftime('%Y-%m-%d %H:%M:%S',ss))    #结果:2019-11-13 22:54:00

# a = (time.strptime('2019-11-13 22:54:00','%Y-%m-%d %H:%M:%S'))     #时间转换
# #结果:time.struct_time(tm_year=2019, tm_mon=11, tm_mday=13, tm_hour=22, tm_min=54, tm_sec=0, tm_wday=2, tm_yday=317, tm_isdst=-1)
# print(a.tm_yday)    #一年过去了多少天
# print(a.tm_mon)     #几月份
# print(a.tm_hour)    #几点
# print(a.tm_year)    #年份

# print(time.ctime())   #Wed Nov 13 23:09:46 2019

# import datetime
# print(datetime.datetime.now())
#结果:2019-11-13 23:15:13.101352

随机数模块

import random

# print(random.random())      #0.7389143790816882
#
# print(random.randint(1,10)) #1-10随机打印
# print(random.choice('hello world'))
# print(random.choice(['helld',3,[1,2]]))

# print(random.sample([[1,2,3],'12',4],2))    #随机打印2个元素
# print(random.randrange(1,2))        #不包括后面元素

#随机5位验证码
def v_code():

    code=''
    for i in range(5):
        add = random.choice([random.randrange(10), chr(random.randrange(65, 91))])
        code +=str(add)
    print(code)

v_code()

os模块

import os
# print(os.getcwd())                #获取当前Python脚本路径
#
# os.chdir('F:\网络工程')
# print(os.getcwd())                #更改脚本路径

# os.makedirs('abc\\hao\\xue')       #递归创建目录
# os.mkdir('aa')                       #只能创建一个
# os.removedirs('abc\\hao\\xue')       #递归删除空文件
# os.rmdir('abc\\hao\\xue')            #只能删除一个

# os.listdir()        #显示目录下的文件
# os.remove()         #删除文件,不能删除文件夹
# os.rename('aa','www')         #重命名文件、目录
# info = os.stat('.\\www')
# print(info.st_size)     #文件大小

# os.sep      #输出操作系统特定的路径分隔符,win'\' ,linux'/'
# os.linesep    #换行分隔符
# os.pathsep    #变量分隔符
# print(os.system("dir"))     #执行shell命令
# os.environ      #获取环境变量
# os.path.split()     #路径和文件分割,组成一个元组
# print(os.path.dirname('F:\网络工程\python\PyCharm 2017.3.3\全栈学习\venv\Scripts')) #路径的上一层
# os.path.join()  #拼接

sys模块

import sys

# print(sys.argv) #命令行list,第一个元素是程序本身的路径
# print(sys.path)
# print(sys.platform)  #显示当前系统win32为windows系统,
#
# import os
# if sys.platform=='win32':
#     os.system('dir')      #win列出当前目录文件
# else:
#     os.system('ls -lh')   #linux列出当前目录文件

hashlib模块

import hashlib

#md5算法
# m = hashlib.md5()
# print(m)        #输出结果:
# m.update('hello world'.encode('utf8'))
# print(m.hexdigest())    #输出结果:5eb63bbbe01eeed093cb22bb8f5acdc3

#sha算法
# s=hashlib.sha256()
# s.update('hello world'.encode('utf8'))
# print(s.hexdigest())
#输出结果:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

logging模块

logging.basicConfig参数

import logging
# LOG_FORMAT = "%(asctime)s %(name)s %(levelname)s %(pathname)s %(message)s "#配置输出日志格式
# DATE_FORMAT = '%Y-%m-%d  %H:%M:%S %a ' #配置输出时间的格式,注意月份和天数不要搞乱了
# logging.basicConfig(level=logging.DEBUG,
#                     format=LOG_FORMAT,
#                     datefmt = DATE_FORMAT ,
#                     filename=r"test.log" #有了filename参数就不会直接输出显示到控制台,而是直接写入文件
#                     )
# logging.debug("msg1")
# logging.info("msg2")
# logging.warning("msg3")
# logging.error("msg4")
# logging.critical("msg5")
#输出结果:
2019-11-24  16:05:59 Sun  root DEBUG E:/python/fullstack_s2/weeks2/module/logging_module.py msg1 
2019-11-24  16:05:59 Sun  root INFO E:/python/fullstack_s2/weeks2/module/logging_module.py msg2 
2019-11-24  16:05:59 Sun  root WARNING E:/python/fullstack_s2/weeks2/module/logging_module.py msg3 
2019-11-24  16:05:59 Sun  root ERROR E:/python/fullstack_s2/weeks2/module/logging_module.py msg4 
2019-11-24  16:05:59 Sun  root CRITICAL E:/python/fullstack_s2/weeks2/module/logging_module.py msg5 

#logger
# import logging
# #创建logger
# logger = logging.getLogger()
# #创建文件对象
# fh = logging.FileHandler('test.log')
# #创建屏幕标准对象
# ch = logging.StreamHandler()
# #设置日志格式
# formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
# #文件调用formatter日志格式
# fh.setFormatter(formatter)
# #屏幕输出调用formatter日志格式
# ch.setFormatter(formatter)
# #logger添加文件、屏幕输出
# logger.addHandler(fh)
# logger.addHandler(ch)
# logger.setLevel(logging.DEBUG)      #显示所有等级的日志
#
# logger.debug('debug massage')
# logger.info('info massage')
# logger.warning('warning massage')
# logger.error('error massage')
# logger.critical('critical massage')

#输出结果:
常用模块_第1张图片

配置文件模块

import configparser
config = configparser.ConfigParser()
# config['DEFAULT'] = {'compression':'yes',
#                    'serveraliveinterval':'45',
#                     'CompressionLevel':'9'
# }
#
# config['bitbucket.org'] = {
#                             'user':'hao'
#
# }
#
# config['www'] = {
#                 'Port':'22'
#
# }
#
# with open('test.ini','w',encoding='utf8') as configfile:
#     config.write(configfile)

#读取配置文件(default默认不显示)
config.read('test.ini')
print(config.sections())
#输出结果:['bitbucket.org', 'www']

#test.ini输出结果:
常用模块_第2张图片

#读取配置文件(default默认不显示)
config.read('test.ini')
# print(config.sections())
# #输出结果:['bitbucket.org', 'www']
# print(config.defaults())        #default模块下的值

# for key in config['www']:
#     print(key)
#输出结果:   默认dedault模块的key也跟着打印出来
'''
port
serveraliveinterval
compression
compressionlevel
'''
#删除www模块,覆盖原文件
config.remove_section('www')

config.set('bitbucket.org','user','xiaoxue')    #修改user
config.remove_option('bitbucket.org','user')    #删除bitbucket.org模块下的user
config.write(open('test.ini','w'))