python 实现用户管理(IO版)

本篇文件必须对python基础 ,面向对象和python中的os模块和shutil模块比较熟悉当然有关os,shutil模块详解可以先去学习,直接给需求如下:

用户管理系统
  功能如下:
     1 添加用户
     2 查询用户

要求

    1 添加用户到磁盘的指定位置,文件名以用户的名字来命名 
       文件的格式如 : 张三.txt 
       文件里面的内容如下:
           名字: 张三
           性别: 男
           年龄:  22
    2 查询根据名字来查询
    3 不用序列化实现
    4 保存在d:/userproject目录下

思路:

 1. User 实体类    名字  性别   年龄
 2.  UserManager   行为   添加   查询
     #添加  1 返回类型True   2 参数  user对象   3 addUser
   def addUser(self,user):
    # 判断目录是否存在
        #2 创建文件
        #3 写入内容
        #4 关闭资源

   # 查询   返回User 2 参数name   3 queryUserByName
   def querUserByName(self,name):
        #1判断文件是否存在,存在就读取str ->user对象 ,不存在就提示
    #2关闭资源

 3. Menu  用户交互负责输入和输出

代码如下:
UserBean

#用户实体类
class UserBean():

    def __init__(self,name,age,sex):
        self.__name=name
        self.age=age
        self.sex=sex

    def showInfo(self):

        print("名字:",self.name,"年龄:",self.age,"性别:",self.sex)

UserManager

   #操作用户
import  os
from xml.dom.minidom import Document
from  userproject.UserBean import  UserBean

class UserManager():

    #常量  保存用户的路径
    USER_SAVE_PATH="d:/userproject/"

    #添加用户
    def addUser(self,userBean):
        #1判断保存目录是否存在,
        if os.path.exists(UserManager.USER_SAVE_PATH) is False:
        #2不存在就创建目录,
            os.makedirs(UserManager.USER_SAVE_PATH)
        # 存在通过open创建文件,并在文件中添加内容 d:/userproject/张三.txt
        file = open(UserManager.USER_SAVE_PATH+userBean.name+".txt",'w')
        file.write("名字:"+userBean.name+"\n")
        file.write("性别:" + userBean.sex + "\n")
        file.write("年龄:" + str(userBean.age))
        #3关闭资源 并返回结果
        file.close()
        return  True

    #根据用户名来查询
    def queryUserByName(self,name):
        file = UserManager.USER_SAVE_PATH+name+".txt"
        if  os.path.isfile(file) is True:# 1判断文件是否存在,如果存在就读取str, str -> userBean对象
            f = open(UserManager.USER_SAVE_PATH+name+".txt",'r')
            return  self.strToUserBean(f)
        else:#2不存在返回None
            return  None


    def strToUserBean(self,f):
        text = f.read()
        name = text.split("\n")[0].split(":")[1]
        sex= text.split("\n")[1].split(":")[1]
        age =text.split("\n")[2].split(":")[1]
        f.close()
        return  UserBean(name,age,sex)

Menu

from  userproject.UserBean import UserBean
from userproject.UserManager import UserManager

class Menu():

    def __init__(self):
        self.userManger = UserManager()


    #开启系统
    def startSystem(self):
        print("用户管理系统")
        print("1 添加用户")
        print("2 查询用户")
        print("3 退出")
        type= int (input("请选择:"))
        while type>=1 and type<=3:
            if type==1:
                self.createAddUserMenu()
            elif type==2:
                self.createQueryUserByNameMenu()
            elif type==3:
                break
            type = int(input("请选择:"))
        else:
            print("输入有误")

    def createAddUserMenu(self):
        name = input("请输入用户名:")
        sex = input("请输入性别:")
        age =input("请输入年龄:")
        user = UserBean(name,age,sex)
        if self.userManger.addUser(user) is True:
            print("添加成功")
        else:
            print("添加失败")


    def createQueryUserByNameMenu(self):
        name = input("请输入名字:")
        user = self.userManger.queryUserByName(name)
        if  user is not None:
            user.showInfo()
        else:
            print("用户不存在")


#程序入口
m = Menu()
m.startSystem()

主要巩固面向对象思想和os模块和shutil模块基本操作。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值