Python day16
ord() 把值转换成ASCLL码
chr()把ASCLL码转成值
OS模块
import os
print(os.name) #nt
os.mkdir('t2')#创建一个文件't2',若是已经存在则无法继续创建
os.rmdir('t2')#删除一个空文件``,里面不能有内容
import shutil
shutil.rmtree(path)#非空文件夹的删除
os.listdir(path)# 查看path的内容,并以列表的形式返回
os.chdir#切换目录
os.getcwd() #获取当前文件的路径(绝对路径)
os.getpid()#获取当前进程的id
os.getppid()#获取父进程ID
os.path.abspath()#得到绝对路径
os.path.isabs()#判断所给的路径是否是绝对路径
os.path.isfile()#判断是不是文件
os.path.isdir()#判断是不是文件夹
os.path.extists()#判断是否存在文件夹或路径
os.path.join(path,file)#拼接,path\file
os.path.split(path)#切割
os.path.getsize*()#单位字节
os.path.getatime()#访问时间
os.path.getctime()#创建时间,windows
os.path.getmtime()#修改时间
时间模块
time模块
import time
datetime模块
date日期
datetime日期时间
time时间
timedelta时间差
from datetime import datetime
datetime.now()
datetime.today()
calendar模块
import calendar
print(calendar.calendar(2019))#打印2019日历
print(calendar.month(2019,8))#打印月份日期
print(calendar.weekday(2019,8,12))#打印该天是星期几
random模块
import random
random.random()#小数------> [0,1)
random.randint()#[a,b]
random.randrange()#[a,b),取不到右边的
random.choice#选择
random.shuffle()#把原来的列表打乱
math模块
math.ceil(9.12)#10,向上取整,前面的整数+1
matn.floor(9.89)#9,向下取整,取前面的整数
math.mod(10,3)#1,求余数
math.fbs(-89.0)#89,取绝对值
math.sqrt(9)#3,开平方
math.pow(2,5)#32.0,x的y次方
hashlib模块
md5 sha1 sha256------>加密不可逆
base64 ---->加密可逆
import hashlib
md5=hashlib.md5()
s='阿萨:啊飒飒'
md5.update(s.encode('utf-8'))
print(md5.hexdigest())#62886788136bf02f7768002b489e4f20
sha1.update(s.encode('utf-8'))
print(sha1.hexdigest())#3cd4fd42b6e3d720f843ad74749a2f0cf98e53ef
sha256.update(s.encode('utf-8'))
print(sha256.hexdigest())#d08785187a67429734c8bee44e4a6bb892d62b7ce44b48d0b4be5fabe649c597
********************注册登录密码加密*********************************
def register():
username = input('用户名:')
password = input('密码:')
user = []
user.append(username)
user.append(hashlib.sha256(password.encode('utf-8')).hexdigest())
with open('t2/users.csv', 'a', newline='') as ws:
csv_ws = csv.writer(ws)
csv_ws.writerow(user)
print('注册成功!')
def login():
username = input('用户名:')
password = input('密码:')
password = hashlib.sha256(password.encode('utf-8')).hexdigest()
with open('t2/users.csv', 'r') as rs:
csv_rs = csv.reader(rs)
for user in csv_rs:
if username == user[0] and password == user[1]:
print('登录成功!')
break
else:
print('用户名或者密码有误~!')
if __name__ == '__main__':
# register()
login()
logging
日志文件:
日志级别:
‘CRITICAL’: CRITICAL,
‘FATAL’: FATAL,
‘ERROR’: ERROR,
‘WARN’: WARNING,
‘WARNING’: WARNING,
‘INFO’: INFO,
‘DEBUG’: DEBUG,
‘NOTSET’: NOTSET,
import logging
# 1. 日志对象
logger = logging.getLogger()
# 2. 设置级别
logger.setLevel(logging.ERROR)
# 3. 创建一个handler 对象
file = 't2/log.txt'
handler = logging.FileHandler(file)
handler.setLevel(logging.ERROR)
# 4. 创建一个formatter格式对象
fmt = logging.Formatter('%(asctime)s - %(module)s - %(filename)s[%(lineno)d] - %(levelname)s:%(message)s')
handler.setFormatter(fmt)
# 5.
logger.addHandler(handler)
def func():
try:
number = int(input('请输入一个数字:'))
for i in range(number):
print('---->', i)
except:
logger.error('输入的不是一个数字!')
finally:
print('------over---------')
func()