1、编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改
实现效果 [root@Kingstar day13]# cat test.txt 12345 我上山打老虎 老虎没打到 打了一堆麻雀 45678aaa [root@Kingstar day13]# python practice_1.py 请输入修改文件的地址:/home/day13/test.txt 请输入需要修改的内容:麻雀 请输入修改后的内容:小鸟 [root@Kingstar day13]# ls practice_1.py test.txt [root@Kingstar day13]# cat test.txt 12345 我上山打老虎 老虎没打到 打了一堆小鸟 45678aaa [root@Kingstar day13]#
代码实现:
def change(self): if os.path.exists(self.sourcefile): file_1 = open(self.sourcefile,mode='rb') file_2 = open(self.sourcefile_bak,mode='ab') while True: res = file_1.readline().decode('utf-8') if res: if self.old_content in res: res = res.replace(self.old_content,self.new_content) file_2.write(res.encode('utf-8')) else:break file_1.close() file_2.close() os.remove(self.sourcefile) os.rename(self.sourcefile_bak,self.sourcefile_bak[:-4:])
2、编写tail工具
实现效果: [root@Kingstar day13]# python practice_2.py 请输入日志文件的路径:/home/day13/1.log 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂 上,姜春,你这个憨批,上啊,别怂
代码实现:
def tailfile(self): if os.path.exists(self.logpath): self.f = open(self.logpath,mode='rb') self.f.seek(0,2) while True: res = self.f.readline() if not res: time.sleep(0.5) print(res.decode('utf-8'),end='') self.f.close()
3、编写登录功能
实现效果: [root@Kingstar day13]# python practice_3.py 请输入用户名:ls 请输入密码:ls 用户ls不存在,请先注册用户! [root@Kingstar day13]# python practice_3.py 请输入用户名:alex 请输入密码:8888 密码错误,登录失败! [root@Kingstar day13]# python practice_3.py 请输入用户名:egon 请输入密码:vip666 用户egon登录成功! [root@Kingstar day13]#
代码如下:
import os,sys userfile = os.path.dirname(os.path.abspath(sys.argv[0])) + '/user.db' class Login(): def __init__(self,username,passwd): self.username = username self.passwd = passwd self.check() def check(self): self.user_dict = {} if os.path.exists(userfile): f = open(r'{}'.format(userfile),mode='rb') while True: res = f.readline().decode('utf-8') if not res:break name,pwd = res.strip(' ').split(':') self.user_dict[name] = pwd f.close() if self.username in self.user_dict.keys(): if self.passwd == self.user_dict.get(self.username): print('用户{}登录成功!'.format(self.username)) else:print('密码错误,登录失败!') else: print('用户{}不存在,请先注册用户!'.format(self.username)) else: print('用户文件不存在!') if __name__ == '__main__': main()
4、注册功能
实现效果: [root@Kingstar day13]# python practice_4.py 请输入你需要注册的用户名:alex 请输入密码:slsl 用户alex已存在,请重新创建,或者登录该账号! [root@Kingstar day13]# python practice_4.py 请输入你需要注册的用户名:egon 请输入密码:lsl 用户egon已存在,请重新创建,或者登录该账号! [root@Kingstar day13]# python practice_4.py 请输入你需要注册的用户名:tank 请输入密码:ssdd 用户tank已存在,请重新创建,或者登录该账号! [root@Kingstar day13]# python practice_4.py 请输入你需要注册的用户名:surpass 请输入密码:123456 用户surpass注册成功! [root@Kingstar day13]#
实现代码:
def check(self): self.user_dict = {} if os.path.exists(userfile): self.f = open(r'{}'.format(userfile),mode='rb') while True: res = self.f.readline().decode('utf-8') if not res:break username,userpwd = res.strip(' ').split(':') self.user_dict[username] = userpwd self.f.close() if self.name in self.user_dict.keys(): print('用户{}已存在,请重新创建,或者登录该账号!'.format(self.name)) else: self.f = open(r'{}'.format(userfile),mode='ab') self.f.write((self.name+':'+self.passwd+' ').encode('utf-8')) self.f.close() print('用户{}注册成功!'.format(self.name))
5、选做题
需求如下: 编写ATM程序实现下述功能,数据来源于文件db.txt # 1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改 # 2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱 # 3、提现功能:用户输入提现金额,db.txt中该账号钱数减少 # 4、查询余额功能:输入账号查询余额 # 选做题中的选做题:登录功能 # 用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作