#1、通用文件copy工具实现
old_path=input('源文件路径: ')
new_path=input('目标文件路径: ')
with open(r'%s'%old_path,'rb')as f,\
open(r'%s'%new_path,'wb')as t:
for line in f:
t.write(line)
#2、基于seek控制指针移动,测试r+、w+、a+模式下的读写内容
with open('user.txt','r+',encoding='utf-8')as f:
f.seek(0,2)
f.write('ceshi4:444')
f.seek(0)
data=f.read()
print(data)
with open('black.txt','w+',encoding='utf-8')as f:
f.write('ceshi1:111')
f.seek(0)
data=f.read()
print(data)
with open('black.txt','a+',encoding='utf-8')as f:
f.seek(0)
data=f.read()
print(data)
f.seek(0,2)
f.write('ceshi5:555')
#3、tail -f access.log程序实现
# 监测程序
import time
with open('access.log','ab')as f:
f.seek(0,2)
for line in f:
if len(line) == o:
time.sleep(0.5)
else:
print('line'.decode('utf-8'),end='')
# 写入程序
import time
for i in range(1000):
with open('access.log','a',encoding='utf-8')as f:
t = time.strftime('%Y-%m-%d %H:%M:%S')
strvar = '收到转账%s亿元'%i
msg = f'{t} {strvar}\n'
print(msg)
#4、
# 4.1:编写用户登录接口
sign = True
while sign:
username=input('请输入用户名: ').strip()
password=input('请输入密码: ').strip()
with open('user.txt','r',encoding='utf-8')as f:
for line in f:
name,pwd = line.strip().split(':')
if username == name and password == pwd:
print('登录成功')
sign = False
break
else:
print('用户名或密码错误')
# 4.2:编写程序实现用户注册后(注册到文件中),可以登录(登录信息来自于文件)
# 注册
sign = True
while sign:
username = input('请输入用户名: ').strip()
password = input('请输入密码: ').strip()
password2 = input('请确认你的密码: ').strip()
if password == password2:
print('注册成功')
with open('user.txt','a',encoding='utf-8')as f:
msg = '%s:%s'%(username,password)
f.write(msg)
sign = False
break
else:
print('2次密码输入不一致')
# 登录
sign = True
while sign:
username = input('请输入用户名: ').strip()
password = input('请输入密码: ').strip()
with open('user.txt','r',encoding='utf-8')as f:
for line in f:
name,pwd=line.strip().split(':')
if username == name and password == pwd:
print('登录成功')
sign = False
break
else:
print('用户名或密码错误')
#5、下属两个案例的升级需求完成
# 示范1:注册功能
# name = input("your name: ").strip()
# 做合法性校验:
# 1、如果输入的用户名包含特殊字符^$&...让用户重新输入
# 2、如果输入的用户名已经存在也重新输入
# pwd = input("your password: ").strip()
# 做合法性校验:
# 1、密码长度
# 2、如果密码包含特殊字符则重新输入
# f.txt = open('user.txt',mode='at',encoding='utf-8')
# f.txt.write('%s:%s\n' %(name,pwd))
# f.txt.close()
# 示范2:登录功能
# inp_name = input("your name: ").strip()
# inp_pwd = input("your pwd: ").strip()
#
# f.txt = open('user.txt',mode='rt',encoding='utf-8')
# for line in f.txt:
# user,pwd=line.strip('\n').split(':')
# if inp_name == user and inp_pwd == pwd:
# print('login successful')
# break
# else:
# print('user or password error')
#
# f.txt.close()
# 升级需求1:同一个账号输错三次则退出
# 升级需求2:同一个账号输错三次则,该账号则锁定10秒,即便程序被终止,仍然计时
def login():
dic = {}
t = []
sign = True
while sign:
username = input('请输入用户名: ').strip()
with open('user.txt','r',encoding='utf-8')as f:
for line in f:
name,pwd = line.strip().split(':')
dic[name]=pwd
if username in dic:
print('您的用户名已存在,请重新输入')
continue
for x in range(33,48):
t.append(chr(x))
for i in t:
if i in username:
print('含有非法字符,请重新输入')
break
else:
while sign:
password=input('请输入密码:').strip()
if len(password) > 4:
print('密码长度超过4,请重新输入')
continue
for i in t:
if i in password:
print('含有非法字符,请重新输入')
break
else:
print('注册成功')
with open('user.txt','a',encoding='utf-8')as f:
msg = "%s:%s\n"%(username,password)
f.write(msg)
sign = False
def register():
login()
import time
# 存放账户
accountlist = []
# 存放密码
pwdlist = []
# 存放黑名单用户
blacklist=[]
sign = True
while sign:
username = input("请输入用户名:")
# 1.获取用户名密码等数据
with open("user.txt",mode="r+",encoding="utf-8")as fp:
lst = fp.readlines()
# 提取文件里的账号密码
for i in lst:
account,pwd = i.strip().split(":")
accountlist.append(account)
pwdlist.append(pwd)
# 2.判断是否存在该用户
if username in accountlist:
# 读取黑名单用户
with open('black.txt','r',encoding='utf-8')as f:
for line in f:
blacklist.append(line.strip())
if username in blacklist:
print('您的账户已锁定,请等待5分钟')
time.sleep(300)
num = accountlist.index(username)
times = 0
while times < 3:
pwd = input("请输入您的密码:")
if pwd == pwdlist[num]:
print("登录成功")
sign = False
break
else:
print("密码错误,你还剩下%s次机会" % (2-times))
# 3.账号输入3次锁定
if times == 2:
print("密码错误三次,账户已锁定,5min后解锁")
with open('black.txt','a+',encoding='utf-8')as f:
res = username + '\n'
f.write(res)
time.sleep(300)
print("账户已解锁,请继续使用")
times += 1
else:
print("该用户不存在")
register()
python_task_08
最新推荐文章于 2023-06-23 11:05:12 发布