时间模块
#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')
#输出结果:
配置文件模块
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输出结果:
#读取配置文件(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'))