day13--函数练习(作业)

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))
        elseprint('用户文件不存在!')

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、查询余额功能:输入账号查询余额

# 选做题中的选做题:登录功能
# 用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作
原文地址:https://www.cnblogs.com/surpass123/p/12514338.html