Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复)
网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=168&spm_id_from=pageDriver&vd_source=cdfd0a0810bcc0bcdbcf373dafdf6a82
第168-169讲:
1.记录用户登录日志
秒——年月日——转成想要的字符串格式:
重复登入几次,可以看出日志在更新:
因为写入时加了换行,那么打印的时候就不要再换行了
因为写了\t,所以会出现这样的制表效果,如果这种效果也不要,直接写成空字符串
import time
def show_info():
print('输入提示数字,执行相应操作:0.退出 1.查看登录日志')
#记录日志
def write_logoininfo(username):
with open('log.txt','a')as file:
s=f'用户名{
username},登录时间:{
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))}'
file.write(s)
file.write('\n')
#读取日志
def read_loginInfo():
with open('log.txt','r')as file:
while True:
line=file.readline()
if line=='':#读完了
break
else:
print(line,end='')
if __name__ == '__main__':
username=input('请输入用户名:')
pwd=input('请输入密码:')
if'admin'==username and 'admin'==pwd:
print('登录成功!!!')
write_logoininfo(username)#记录日志
show_info()#提示用户执行操作
num=int(input('输入操作数字:'))
while True:
if num==0:
print('退出成功!')
break
elif num==1:
print('查看登录日志:')
read_loginInfo()#调用显示日志函数
num = int(input('输入操作数字:'))
else:
print('您输入的数字有误')
show_info()
num = int(input('输入操作数字:'))
else:
print('对不起,用户名或者密码不正确!!!')
2.模拟淘宝客服自动回复
台词啥的为了节约时间我就一切从简了:
订单|订单问题登录淘宝账号查看订单详情
物流|物流问题登录淘宝账号查看详情
账户|账户问题请联系客服
支付|支付问题请联系支付宝客服
写完代码,运行报错:gbk’ codec can’t decode byte 0xae in position 15: illegal multibyte sequence
https://blog.csdn.net/mascotyak/article/details/109893793
编码改为Utf—8之后,问题解决。
def find_answer(question):
with open('reply.txt','r',encoding='utf-8')as file:
while True:
line=file.readline()
if not line:#if line==''到文件末尾退出
break
#字符串的分割
keyword=line.split('|')[0]
reply=line.split('|')[1]
if keyword in question:
return reply
return False#不在问题范围内就返回False
if __name__ == '__main__':
question=input('Hi,您好,小蜜再在此等候您很久了,有话快说!')
while True:
if question == 'bye':
break
#在文件中查找问题
reply= find_answer(question)
if not reply:#查找到的结果是False
question=input('小蜜不知道你在说什么,您可以询问关于订单、物流、账户、支付等问题,退出请输入bye')
else:
print(reply)
question=input('您可以询问关于订单、物流、账户、支付等问题,退出请输入bye')
print('再见~')