2020Python练习九——函数的基本应用
@2020.3.17
利用函数,改写功能
# 1、编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)即可完成文件的修改
import os def file(file_path, old_content, new_content): with open(r'{}'.format(file_path),mode='rb') as read_f, open(r'{}.swap'.format(file_path,mode='wb')) as write_f: #.swap 是Linux系统的命名规则,‘.’开头是隐藏文件 while True: res = read_f.readline().decode('utf-8') if old_content in res: res2 = res.replace('{}'.format(old_content),'{}'.format(new_content)) write_f.write(bytes('{}'.format(res2),encoding='utf-8')) else: write_f.write(bytes('{}'.format(res),encoding='utf-8')) break os.remove('{}'.format(file_path)) # 删除原文件 os.rename('{}.swap'.format(file_path),'{}'.format(file_path)) #将新文件重命名为原文件名 file_path = input('please input file path:') old_content = input('please input content that needs to rewrite:') new_content = input('please input new content:') if file_path and old_content and new_content: mesg = file(file_path, old_content, new_content) print(mesg) else: print('修改失败,请重试')
# 2、编写tail工具
def tail(): cmd = input('请输入命令:').strip() if cmd == 'tail -f access.log': with open(r'access.log', 'a+b') as f: f.write(bytes('{} '.format(cmd), encoding='utf-8')) continue else: with open(r'access.log', 'rb') as f: f.write(bytes('{} '.format(cmd), encoding='utf-8')) tail()
# 3、编写登录功能
def login(inp_username,inp_password): with open('user.txt',mode='rt',encoding='utf-8') as f: for line in f: # 验证,把用户输入的名字和密码与读出的内容作对比 print(line,end='') # egon:123 username,password=line.strip().split(':') if inp_username == username and inp_password == password: print('login successfull') break else: print('账号或密码错误') inp_username=input('your name>>: ').strip() inp_password=input('your password>>: ').strip() login(inp_username,inp_password)
# 4、编写注册功能
def register(name,pwd): with open('register.txt',mode='at',encoding='utf-8') as f: f.write('{}:{} '.format(name,pwd)) name=input('your name>>: ') pwd=input('your name>>: ') register(name,pwd)