目录
1、编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改
import os
def file_update(file_path,old_msg,new_msg):
with open("b.txt","r",encoding="utf-8") as f
,open(f"{file_path}\b.txt","w",encoding="utf-8") as f1:
for line in f:
f1.write(line.replace(f"{old_msg}",f"{new_msg}"))
os.remove("b.txt")
file_update("locked","a","b")
2、编写tail工具
import time
def tail():
with open("log.txt","rb") as f:
f.seek(0,2)
while True:
new_msg = f.readline()
if len(new_msg)==0:
time.sleep(1)
else:
print(new_msg.decode("utf-8"))
tail()
#另一个文件
def write_log():
with open("log.txt","a",encoding="utf-8") as f:
msg = input("请输入日志内容")
f.write(f"
{msg}")
write_log()
3、编写登录功能
def login():
user_inp = input("your name >")
pwd_inp = input("your msg >")
with open("a.txt","r",encoding="utf-8") as f:
for line in f :
username,password = line.strip().split(":")
if username==user_inp and pwd_inp == password:
print("登录成功")
break
else:
print("输入错误")
login()
4、编写注册功能
def register():
username = input("请输入注册的用户名:")
password = input("请输入注册的密码:")
with open("a.txt","a",encoding="utf-8") as f :
f.write(f"
{username}:{password}")
register()
选做题:编写ATM程序实现以下功能,数据源于文件db.txt
1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
4、查询余额功能:输入账号查询余额
5、用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作
import os
def recharge():
''' 充值功能'''
name_inp = input("请输入要充值的账号>")
money_inp = input("请输入要充值的金钱>")
with open("db.txt","r",encoding="utf-8") as f ,
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f :
if name_inp in line :
name,money = line.strip().split(":")
new_money = int(money_inp)+int(money)
f1.write(line.replace(money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def transfer():
'''转账功能'''
transfer_name_inp = input("请输入转账人姓名:")
collector_name_inp = input("请输入收账人姓名:")
money_inp = input("请输入转账金额")
with open("db.txt","r",encoding="utf-8") as f ,
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f :
if transfer_name_inp in line :
transfer_name,transfer_money=line.strip().split(":")
new_money = int(transfer_money)-int(money_inp)
f1.write(line.replace(transfer_money,str(new_money)))
elif collector_name_inp in line:
collector_name,collector_money=line.strip().split(":")
new_money = int(collector_money)+int(money_inp)
f1.write(line.replace(collector_money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def cash_withdrawal():
'''提现功能'''
name_inp = input("请输入提现账号的姓名:")
money_inp = input("请输入提现的金额:")
with open("db.txt","r",encoding="utf-8") as f ,
open(".db.txt.swap","w",encoding="utf-8") as f1:
for line in f:
if name_inp in line:
name,money = line.strip().split(":")
new_money = int(money)-int(money_inp)
f1.write(line.replace(money,str(new_money)))
else:
f1.write(line)
os.remove("db.txt")
os.rename(".db.txt.swap","db.txt")
def login():
'''登录功能'''
user_inp = input("your name >")
pwd_inp = input("your msg >")
with open("a.txt","r",encoding="utf-8") as f:
for line in f :
username,password = line.strip().split(":")
if username==user_inp and pwd_inp == password:
print("登录成功")
return 1
else:
print("输入错误")
def query():
'''查询功能'''
name_inp=input("请输入你要查询的用户名:")
with open("db.txt","r",encoding="utf-8")as f :
for line in f :
name,money = line.strip().split(":")
if name_inp in line:
print(money)
break
#主程序
list1=["1","2","3","4"]
while True:
res = login()
if res:
while True:
print('''
欢迎来到只能充值转账提现的劣质ATM系统
1.充值
2.转账
3.提现
4.查询
''')
cmd = input("请输入指令>")
if cmd ==list1[0]:
recharge()
elif cmd == list1[1]:
transfer()
elif cmd == list1[2]:
cash_withdrawal()
elif cmd == list1[3]:
query()
else:
print("非法输入")