zoukankan      html  css  js  c++  java
  • Day5.对文件的增删改查+三次登陆后锁定

    作业1:对文件haproxy.conf进行增删改查:

    haproxy.conf原文件内容如下:

    global
            log 127.0.0.1 local2
            daemon
            maxconn 256
            log 127.0.0.1 local2 info
    defaults
            log global
            mode http
            timeout connect 5000ms
            timeout client 50000ms
            timeout server 50000ms
            option  dontlognull
    
    listen stats :8888
            stats enable
            stats uri       /admin
            stats auth      admin:1234
    
    frontend oldboy.org
            bind 0.0.0.0:80
            option httplog
            option httpclose
            option  forwardfor
            log global
            acl www hdr_reg(host) -i www.oldboy.org
            use_backend www.oldboy.org if www
    
    backend www.oldboy1.org
            server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33333333333
            server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000
            server 2.2.2.4 2.2.2.4 weight 20 maxconn 3000
    backend www.oldboy2.org
            server 3.3.3.3 3.3.3.3 weight 20 maxconn 3000
    backend www.oldboy20.org
            server 1.1.1.1 1.1.1.1 weight 9999 maxconn 3333

    作为小白还是有些许的成就感,但代码中还存在很多很多的bug,以后会逐渐完善,我的代码如下:

    def delete():
        l=[]
        with open("haproxy.conf",encoding="utf8") as f_read:
            print('''请输入如下格式的内容:
    {'backend':'www.oldboy20.org','record':{'server':'1.1.1.1 1.1.1.1','weight':9999,'maxconn':3333}}
                 ''')
            arg=input("please input your url:").strip()
            arg=eval(arg)
            for line in f_read:
                if line.strip().startswith("server") and arg["record"]["server"] in line:
                    l.append(line)
        with open("haproxy.conf", encoding="utf8") as f_read, open("test", mode="w", encoding="utf8") as f_write:
            for i in f_read:
                if i not in l:
                    f_write.write(i)
        print("删除成功")
        # import os
        # os.rename("haproxy.conf", "haproxy.conf_bak")
        # os.rename("test","haproxy.conf")
    def add():
        l=[]
        flag=False
        with open("haproxy.conf",encoding="utf8") as f_read, open("test", mode="w", encoding="utf8") as f_write:
            print('''请输入如下格式的内容:
    {'backend':'www.oldboy20.org','record':{'server':'1.1.1.1 1.1.1.1','weight':9999,'maxconn':3333}}
                         ''')
            arg=input("please input your url:").strip()
            arg=eval(arg)
            for line in f_read:
                if line.startswith("backend") and arg["backend"] in line:
                    l.append(arg["record"])
                    line="".join([line.strip()+"
    "+"        server %s weight %s maxconn %s"
                         %(arg["record"]["server"],arg["record"]["weight"],arg["record"]["maxconn"])+"
    "])
                f_write.write(line)
        print("增加成功")
    def modify():
        l=[]
        flag=False
        with open("haproxy.conf",encoding="utf8") as f_read, open("test", mode="w", encoding="utf8") as f_write:
            print('''请输入如下格式的内容:
    {'backend':'www.oldboy20.org','record':{'server':'1.1.1.1 1.1.1.1','weight':9999,'maxconn':3333}}
    该脚本暂不能修改server的值
                         ''')
            arg=input("please input your url:").strip()
            arg=eval(arg)
            for line in f_read:
                if line.strip().startswith("server") and arg["record"]["server"] in line:
                    l.append(arg["record"])
                    flag=True
                if flag:
                    line="        server %s weight %s maxconn %s"
                         %(arg["record"]["server"],arg["record"]["weight"],arg["record"]["maxconn"])
                f_write.write(line)
        print("修改成功")
    def see():
        print('''请输入如下格式的内容:
    www.oldboy2.org
            ''')
        arg=input('please input your url:').strip()
        l=[]
        flag=False
        with open("haproxy.conf",encoding="utf8") as f_read:
            for line in f_read:
                if line.startswith("backend") and arg in line: 
                    flag=True  
                    continue
                if line.startswith("backend") and flag:  
                    break
                if flag:     
                    l.append(line.strip())
            for i in l:
                print(i)
        print("查看成功")
    while True:
        print('''
    -------------------
        删除--->删
        增加--->增
        修改--->改
        查看--->查
    -------------------
            ''')
        need=input("your need>>>:").strip()
        if need=="":
            delete()
            continue
        if need=="":
            add()
            continue
        if need=="":
            modify()
            continue
        if need=="":
            see()
        else:
            print("请输入正确的操作指令!!!")

    作业2:输入用户名密码,认证成功后显示欢迎信息,输错三次后锁定:

    用户信息表如下:

    aaa---123
    bbb---456
    ccc---789
    ddd---666

    代码如下(憋了一上午,让我深深的明白了缩进和语句位置的重要性!!!):

    def lock(username):
        with open("heimingdan", "a") as f:
            f.write(username)
            f.write('
    ')
    # f_read=open("name+passwd",encoding="utf8")
    # f_write=open("heimingdan", encoding="utf8", mode="r+")
    # f_write.write("aaa
    ")
    with open("name+passwd",encoding="utf8") as f_read,open("heimingdan", encoding="utf8") as f_write:
        flag=True
        l=[]
        while flag :
            user_name=input("请输入您的用户名:")
            f_write.seek(0)
            for i in f_write:
                if i.strip() == user_name:
                    print("此用户已被锁定")
                    exit()
            user_pwd=input("请输入您的密码:")
            f_read.seek(0)
            for line in f_read:
                name,passwd=line.strip().split("---")
                # print(name,passwd)
                if user_name == name :
                    l.append(user_name)
                    if user_pwd == passwd:
                        print("您已成功登录,欢迎光临!")
                        flag=False
                        break
            if l.count(user_name)==3 and flag!=False:
                lock(user_name)
  • 相关阅读:
    HDU 4005 The war
    #undef
    [转载] #define new DEBUG_NEW
    [转载]常用正则表达式
    [百科]
    [转载]
    [转载]
    [转载]
    [百科]
    [转载]VC6中的文件后缀
  • 原文地址:https://www.cnblogs.com/lxyoung/p/6678765.html
Copyright © 2011-2022 走看看