模块

time模块

关于time模块的介绍可以使用help(time)方法来查看.

time模块的几个重要的方法.

time()方法:时间戳,时间戳是什么意思呢就是从linux诞生的那一年1970年开始计算到现在的秒数

import time
#使用time之中的方法的时候一定要先用import关键字引入time模块
print(time.time())

clock()方法:计算cpu执行的时间

print(time.clock())#result:3.9472224776952327e-07

sleep()方法:让cpu go to bed

gmtime():结构化UTC标准时间,就是子午线开始的时间

print(time.gmtime())

#result:time.struct_time(tm_year=2018, tm_mon=3, tm_mday=17, tm_hour=3,
#  tm_min=22, tm_sec=56, tm_wday=5, tm_yday=76, tm_isdst=0)

localtime():与gmtime相应的有一个localtime方法,就是取本地的结构化时间

print(time.localtime()) 
#result:time.struct_time(tm_year=2018, tm_mon=3, tm_mday=17, tm_hour=11, 
# tm_min=27, tm_sec=9, tm_wday=5, tm_yday=76, tm_isdst=0)

asctime():以一定的格式输出当前的时间

print(time.asctime())#Sat Mar 17 11:29:33 2018

strftime():格式化结构时间

print(time.strftime("%Y-%m-%d %H:%M:%S"))#2018-03-17 11:34:53
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))#2018-03-17 11:34:53
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()))#2018-03-17 03:34:53

ok此时可以发现strftime(format,value)方法中需要两个参数,format代表的是日期的格式,第二个就是结构化时间的元组地址.

strptime():将时间按照日期格式转换为结构化时间

print(time.strptime("2018-03-17 03:34:53","%Y-%m-%d %H:%M:%S"))
#result:time.struct_time(tm_year=2018, tm_mon=3, tm_mday=17, tm_hour=3, 
# tm_min=34, tm_sec=53, tm_wday=5, tm_yday=76, tm_isdst=-1)

☆☆☆☆☆:对于结构化的时间一般可以进行一下操作

例如:

a = time.strptime("2018-03-17 11:34:53","%Y-%m-%d %H:%M:%S")
print(a.tm_year)#2018
print(a.tm_yday)#76 该年的第几天
print(a.tm_wday)#5:每周的第几天,但是今天是周六为什么是5呢查了下tm_wday的取值范围就是(0-6)所以今天是5就是正确的
print(a.tm_mday)#17 :该月的第几天
print(a.tm_hour)#11 :小时
print(a.tm_mon)#3   :月份
print(a.tm_min)#34  :分钟
print(a.tm_isdst)#-1
print(a.tm_sec)#53  :秒

ctime:当不加参数的时候拿到的是当前的时间,当有参数的时候参数需是一个时间戳的形式,然后通过ctime方法转换为一个具体的时间,

print(time.ctime())#Sat Mar 17 11:59:25 2018
print(time.ctime(124567890))#Thu Dec 13 02:11:30 1973

mktime:将结构化时间转换为时间戳

print(time.mktime(time.localtime()))#1521259364.0

datetime:时间中的datetime模块最常用的方法就是datetime.datetime.now()方法来获取当前的时间

print(datetime.datetime.now())#2018-03-17 12:04:41.931718

随机数模块

常用方法:

import random
print(random.random())#0.1177239327847478 获取0-1之间的随机数
print(random.randint(1,8)) #获取1-8之间的随机数
print(random.choice("hello"))#choice方法中的参数需要是一个序列,每次随机取序列中的一个元素
print(random.sample("hello",4))#第一个参数是序列,从序列中随机取出4个元素
print(random.randrange(1,10))#在1-9之间随机取出一个数字

随机数练习题:验证码,随机的数字和验证码组合的五位数

def foo(x):
    for i in range(x):
        print(random.choice([random.randrange(1,10),chr(random.randrange(65,117))]),end="")

foo(5)

OS模块

其中的OS呢就是操作系统

# _author_=zhangyakang
# date=2018/3/17
import os
#print(os.getcwd())#result:C:\Users\zhangyakang\PycharmProjects\fullstack  获取当前的工作目录
#os.chdir(r"C:\Users\zhangyakang\PycharmProjects")#result C:\Users\zhangyakang\PycharmProjects
#切换工作目录到指定的目录
#print(os.getcwd())
os.chdir
#print(os.getcwd())
os.pardir
#print(os.getcwd())

#os.makedirs(r"abc\124")#创建指定的目录到当前文件夹下
#os.removedirs(r"abc\124")#删除当前目录下的指定文件夹以及子文件夹,如果是空就删除,如果不是空就不删除
#os.makedirs("abc")#在当前目录下生成指定名字的问价夹
#os.rmdir("abc")#在当前目录下删除指定的文件夹
#print(os.listdir(r"C:\Users\zhangyakang\PycharmProjects\fullstack"))
#将指定文件夹的属性信息放到一个列表中
#result of listdir ['.idea', 'All_of_IO.py', 'deep_easy_copy.py',
# 'dictionary.py', 'encode_decode.py', 'ForAndWhile.py', 'FormatString.py',
# 'function_.py', 'ifandelse.py', 'list.py', 'log.txt', 'OS_module.py', 'python',
# 'random_module.py', 'set_method.py', 'set_study.py', 'string_method.py', 'time_module.py',
#  'user.txt', 'weixin.txt', '生成器.py', '装饰器_练习题.py', '诗词', '诗词歌赋']
#os.remove(r"12345")#删除当前目录下的文件
#os.renames("python","pythonnnnnn") #更改当前目录下的文件或文件夹的名字
#ret = os.stat(r"C:\Users\zhangyakang\PycharmProjects\fullstack\pythonnnnnn")
#print(ret)
#获取当前文件夹的信息放到元组中
#result of stat :os.stat_result(st_mode=16895, st_ino=3377699720633669,
# st_dev=39072, st_nlink=1, st_uid=0, st_gid=0,
# st_size=0, st_atime=1521262837, st_mtime=1521262837, st_ctime=1521262837)
#print(os.sep)#获取当前系统下的分隔符
#print(os.linesep)#获取当前系统下的换行符
#print(os.pathsep)#当前系统下的路径分隔符
#os.system("command")#执行shell命令时使用
#print(os.environ)#获取os下的环境变量是一个字典的形式
#environ({'PYTHONPATH': 'C:\\Users\\zhangyakang\\PycharmProjects\\fullstack',
# 'HOMEPATH': '\\Users\\zhangyakang', 'USERPROFILE': 'C:\\Users\\zhangyakang',
# 'USERDOMAIN': 'zhangyakang-PC', 'PSMODULEPATH':
# 'C:\\windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\', 'PROCESSOR_REVISION':
# '3a09', 'WINDIR': 'C:\\windows', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
# 'OS': 'Windows_NT', 'TMP': 'C:\\Users\\ZHANGY~1\\AppData\\Local\\Temp', 'LOGONSERVER':
# '\\\\ZHANGYAKANG-PC', 'SYSTEMROOT': 'C:\\windows', 'PROGRAMFILES(X86)':
# 'C:\\Program Files (x86)', 'PROGRAMFILES': 'C:\\Program Files', 'FP_NO_HOST_CHECK': 'NO',
# 'WINDOWS_TRACING_FLAGS': '3', 'COMPUTERNAME': 'ZHANGYAKANG-PC', 'HOMEDRIVE': 'C:',
# 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 58 Stepping 9, GenuineIntel', 'PATHEXT':
# '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'NUMBER_OF_PROCESSORS': '4',
# 'ALLUSERSPROFILE': 'C:\\ProgramData', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'SYSTEMDRIVE':
# 'C:', 'PUBLIC': 'C:\\Users\\Public', 'APPDATA': 'C:\\Users\\zhangyakang\\AppData\\Roaming',
#  'SESSIONNAME': 'Console', 'PATH': 'C:\\windows\\system32;C:\\windows;C:\\windows\\System32
# \\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\ThinkPad\\
# Bluetooth Software\\;C:\\Program Files\\ThinkPad\\Bluetooth Software\\syswow64;C:\\Program
# Files\\MySQL\\MySQL Utilities 1.6\\;C:\\Program Files (x86)\\Common Files\\Adobe\\AGL;C:\\
# Python\\python.exe;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\
# \Python\\Scripts\\;C:\\Python\\', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
# 'COMSPEC': 'C:\\windows\\system32\\cmd.exe', 'LOCALAPPDATA': 'C:\\Users\\zhangyakang\\AppDat
# a\\Local', 'USERNAME': 'zhangyakang', 'PYTHONUNBUFFERED': '1', 'PYTHONIOENCODING': 'UTF-8',
#  'PYCHARM_HOSTED': '1', 'PROGRAMDATA': 'C:\\ProgramData', 'COMMONPROGRAMFILES(X86)': 'C:\
# \Program Files (x86)\\Common Files', 'PROGRAMW6432': 'C:\\Program Files', 'PROCESSOR_LEVEL':
#  '6', 'TEMP': 'C:\\Users\\ZHANGY~1\\AppData\\Local\\Temp', 'WINDOWS_TRACING_LOGFILE':
# 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log'})
#print(os.path.abspath(r"./"))#给定一个相对路径获取一个绝对路径
#print(os.path.split(r"C:/Users/zhangyakang/PycharmProjects/fullstack"))#根据最后一个\将path分隔为两部分
#然后放到元组中
#print(os.path.dirname(r"C:\Users\zhangyakang\PycharmProjects\fullstack\pythonnnnnn\now\asdf"))
#根据输入的路径和文件名,返回文件所在的绝对路径
#print(os.path.basename(r"C:\Users\zhangyakang\PycharmProjects\fullstack\pythonnnnnn\now\asdf"))
#根据输入的路径和文件名,返回文件的名字
os.path.exists("path")#判断文件是否存在,存在返回true不存在返回false
os.path.isabs("path")#判断是不是绝对路径
os.path.isfile("path")#判断是否是文件
os.path.isdir("path")#判断是否是文件夹
os.path.join(["path1","path2"])#将路径path1和路径path2拼接到一块
os.path.getatime()#得到目录最后存取时间
os.path.getctime()#得到目录最后修改时间

hashlib模块

hashlib模块加密又分为MD5,SHA,等加密方式

hash = hashlib.md5()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())

结果:21232f297a57a5a743894a0e4a801fc3

sha加密方法

s = hashlib.sha1()
s.update("123456".encode("utf-8"))
print(s.hexdigest())

结果:7c4a8d09ca3762af61e59520943dc26494f8941b

Logging模块

日志记录的模块.

import logging
logging.debug("debug message....")
logging.info("info message.....")
logging.warning("warning message....")
logging.error("error message....")
logging.critical("critical message....")

运行结果,默认debug,和info级别的不会显示.

logging配置

通过baseconfit方法配置loging日志的级别,但是这种方法不是常用的,这种方式的缺陷是,只能在屏幕输出和记录到文件,二选一.所以一般不用这种方式.而使用下面的这种方式.

使用logger

logger = logging.getLogger()
fh = logging.FileHandler("test.log")#存储日志信息的位置
ch = logging.StreamHandler()#控制台输出日志信息
formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
#格式
fh.setFormatter(formatter)#设置文件存储的格式
ch.setFormatter(formatter)#设置屏幕输出的格式
logger.addHandler(fh)#logger是老大说存储到文件中
logger.addHandler(ch)#logger老大说打印到屏幕上
logger.setLevel(logging.DEBUG)#设置默认级别

logging.debug("debug message....")
logging.info("info message.....")
logging.warning("warning message....")
logging.error("error message....")
logging.critical("critical message....")
logging.debug("ok")

存储到文件中的日志文件


控制台输出的日志信息


ConfigParser模块

用于修改常见的配置文件,一般是键值对格式的文档.

import configparser
#创建一个简单的配置文件
config = configparser.ConfigParser()
config["DEFAULT"] = {'serverAliveInterval':45}#将内容写到配置文件中
config["bitbucket"] = {'user':'hg'}#将文件写到配置文件中
with open('example.ini','w') as configfile:#只用使用with语句之后才会起作用
    config.write(configfile)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值