文件操作,是一个存为字符串格式的登陆系统,有增删改查的功能,但不是我想要的。。。

def register(NAME, PWD, TEL):
    with open(‘userdate.txt‘, ‘a‘, encoding=‘utf-8‘) as f:
        new = ‘&&‘.join([NAME, PWD, TEL])
        f.write(‘\n‘ + str(new))
    return True

def same(NAME):
    with open(‘userdate.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
        for i in f:
            name = i.split(‘&&‘)[0]
            if name == NAME:
                return True
    return False

def login(NAME, PWD):
    with open(‘userdate.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
        for i in f:
            if NAME == i.split(‘&&‘)[0] and PWD == i.split(‘&&‘)[1]:
                return True
    return False

def change(NAME, TEL):
    with open(‘userdate.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
        new = ‘‘
        for i in f:
            if NAME == i.split(‘&&‘)[0] and TEL == i.split(‘&&‘)[2]:
                newpwd = input(‘输入新的密码‘)
                i = i.replace(i.split(‘&&‘)[1], newpwd)
            new += i
        # else:
        #     main()
    with open(‘userdate.txt‘, ‘w‘, encoding=‘utf-8‘) as f:
        f.write(new)
        return True

def delete(NAME, PWD):
    with open(‘userdate.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
        new = ‘‘
        for i in f:
            if NAME == i.split(‘&&‘)[0] and PWD == i.split(‘&&‘)[1]:
                i = ‘\n‘
            new += i
        with open(‘userdate.txt‘, ‘w‘, encoding=‘utf-8‘) as f:
            f.write(new)
            return True

def main():
    print(‘1:注册,2:登录,3:变更,4:删除‘)
    choice = input(‘请选择‘).strip()
    if choice == ‘1‘:
        NAME = input(‘输入用户名‘).strip()
        if same(NAME):
            print(‘用户名已被占用,重新输入‘)
            main()
        else:
            PWD = input(‘输入密码‘).strip()
            TEL = input(‘输入电话‘).strip()
            if register(NAME, PWD, TEL):
                print(‘注册成功‘)
    if choice == ‘2‘:
        NAME = input(‘输入用户名‘).strip()
        PWD = input(‘输入密码‘).strip()
        if login(NAME, PWD):
            print(‘登录成功‘)
    if choice == ‘3‘:
        NAME = input(‘输入用户名‘).strip()
        TEL = input(‘输入电话‘).strip()
        if change(NAME, TEL):
            print(‘修改成功‘)
    if choice == ‘4‘:
        NAME = input(‘输入用户名‘).strip()
        PWD = input(‘输入密码‘).strip()
        if delete(NAME, PWD):
            print(‘删除成功‘)
    else:
        main()

main()

原文地址:https://www.cnblogs.com/xusuns/p/8422266.html

时间: 2024-10-16 05:45:55

文件操作,是一个存为字符串格式的登陆系统,有增删改查的功能,但不是我想要的。。。的相关文章

ABP教程(四)- 开始一个简单的任务管理系统 - 实现UI端的增删改查

接上一篇:ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码 1.实现UI端的增删改查 1.1添加增删改查代码 打开SimpleTaskSystem.sln解决方案,添加一个“包含视图的MVC 5控制器(使用EntityFramework)”TaskController控制器,添加成功后我们就能得到一个完整增删改查的功能了. 生成的代码是不能用在我们的这个示例里的,还需经过些许调整,经过调整后的代码如下: using System; using System.Net; using Sy

[转]什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查

1 什么是Pro*C/C++ 1.通过在过程编程语言C/C++中嵌入SQL语句而开发出的应用程序 2.什么是嵌入式SQL 1.在通用编程语言中使用的SQL称为嵌入式SQL 2.在SQL标准中定义了很多中语言的嵌入式SQL 3.各个厂商对嵌入式SQL的具体实现不同 3.什么是Pro*C/C++ 1.在C/C++语言中嵌入SQL语句而开发出的应用程序. 2.目的:使c/c++这种效率语言称为访问数据库的工具. 4.嵌入式SQL的载体是宿主语言 宿主语言 Pro程序 C/C++ Pro*C/C++ F

什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查

 1 什么是Pro*C/C++ 1.通过在过程编程语言C/C++中嵌入SQL语句而开发出的应用程序 2.什么是嵌入式SQL 1.在通用编程语言中使用的SQL称为嵌入式SQL 2.在SQL标准中定义了很多中语言的嵌入式SQL 3.各个厂商对嵌入式SQL的具体实现不同 3.什么是Pro*C/C++ 1.在C/C++语言中嵌入SQL语句而开发出的应用程序. 2.目的:使c/c++这种效率语言称为访问数据库的工具. 4.嵌入式SQL的载体是宿主语言 宿主语言          Pro程序 C/C++

小白5分钟上手c#数据库操作(三) 使用VisualStudio 1分钟快速完成一张表增删改查

VisualStudio 为了节省开发人员时间,提供了很多对数据库的快捷操作: 下面介绍使用GUI,快速搭建数据库表的增删改查: SQlite: 前期准备: 1. VisualStudio 安装两个插件: 2. 数据源准备: SQlite 制作的数据库一个 步骤: 1. 新建 winform 工程 2.拖拽一个DataGridView 3.添加数据源 4.选择数据库 5. 选择DataSet 6. 首次添加数据源,选择New 7. 进入添加Connection 界面并选择SQlite 8. 选择

mongodb增删改查操作

Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 1.增加数据,语法: db.collectionName.isnert(document). #不指定文档的id,数据库会默认分配一个随机id db.user.insert({name:'zhaos',age:23,sex:'f'}); #指定文档的id db.user.insert({_id:5,name:'zhaos',age:23,sex:'f'}); #增加单个文档 db.user.

MyBatis基本增删改查操作

本文内容主要介绍单条记录的增删改查操作,MyBatis提供了很多完成单条记录的增删改查操作的API.本例主要讲述<UserMapper> UserMapper org.apache.ibatis.session.SqlSession.getMapper(Class<UserMapper> clazz)的使用.使用此API,我们需要创建UserMapper操作接口,函数名和MyBatis的User.xml配置文件中的操作id名对应. [转载使用,请注明出处:http://blog.c

文件操作的一个简单示例

在上文介绍了C中文件操作的一些基本函数,下面给一个简单例子,完成从控制台输入一段字符串,然后将其写入文件,然后从文件中读出刚刚写入的内容,代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> const int LENGTH=80; int main(void){ char mystr[LENGTH]; int lstr=0; int mychar=0; FILE * pfile=NULL; c

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons> 

使用logging模块实现对文件增删改查操作的纪录(low B版)

#!/usr/bin/env python#对之前文件进行的增删改查操作实现日志操作,日志输出用户进行过的操作.#!/usr/bin/env pythondef log(): import logging logger_obj=logging.getLogger() logger_obj.setLevel(logging.INFO) fh=logging.FileHandler('log.txt') ch=logging.StreamHandler() logger_obj.addHandler