• Python练习-函数(方法)的定义和应用


    需求:对文件进行增删改查,使用函数调用的方式完成操作

    # 编辑者:闫龙
    import MyFuncation;
    Menu = ["查询","添加","修改","删除"]
    while True:
        for i in range(len(Menu)):
            print(i+1,Menu[i]);
        UserSelect = input("请选择您要操作的类型>>>:");
        if (UserSelect == "1") :
            MyFuncation.SelectConf();
        elif(UserSelect == "2"):
            MyFuncation.InsertConf();
        elif(UserSelect == "3"):
            MyFuncation.UpdateConf();
        elif(UserSelect == "4"):
            MyFuncation.DeleteConf();
        elif(UserSelect.upper() == "Q"):
            break;
    程序主文件调用函数
    # 编辑者:闫龙
    import os
    import time
    def SelectConf():
        "查询haproxy.conf中指定字段的内容"
        TitlesDic = {};
        count = 0;
        with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:
            ConfRead = ConfFile.readlines();
            for i in ConfRead:
                if (not i[0].isspace()):
                    count += 1;
                    TitlesDic[count] = {};
                    TitlesDic[count][i.strip()] = "";
                    Titles = i.strip();
                else:
                    TitlesDic[count][Titles] += i;
        for i in TitlesDic.keys():
            k = list(dict(TitlesDic[i]).keys())[0]
            print(i, k);
        UserSelectTwo = input("请选择您要查询的字段>>>:");
        for i, j in dict(TitlesDic[int(UserSelectTwo)]).items():
            print(i + "
    ", j);
    
    def InsertConf():
        "在haproxy,conf中追加一段内容"
        print("目前只能针对bakend字段进行添加操作")
        bakend = {}
        com = "backend	" + input("请输入域名:") + "
    "
        bakend[com] = "";
        bakend[com] += ("	server	" + input("Server:") + "	");
        bakend[com] += ("weight	" + input("weight:") + "	");
        bakend[com] += ("maxconn	" + input("maxconn:") + "
    ");
        with open("haproxy.conf", mode="a+") as ConfFile:
            for i, j in bakend.items():
                ConfFile.writelines(i + j);
        print("添加成功!")
    
    def UpdateConf():
        "修改haproxy.conf中的指定内容"
        print("目前只能针对backend www.oldboy20.org字段进行修改操作")
        bakend = {}
        WriteDic = {};
        com = "backend	" + input("请输入域名:")
        bakend[com] = "";
        bakend[com] += ("	server	" + input("Server:") + "	");
        bakend[com] += ("weight	" + input("weight:") + "	");
        bakend[com] += ("maxconn	" + input("maxconn:") + "
    ");
        with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:
            ConfRead = ConfFile.readlines();
            for i in ConfRead:
                if (not i[0].isspace()):
                    Titles = i.strip();
                    WriteDic[Titles] = "";
                else:
                    WriteDic[Titles] += i;
        with open("haproxy.conf_new", mode="w+", encoding="utf8") as WriteNewFile:
            WriteDic.pop("backend www.oldboy20.org")
            WriteDic.update(bakend);
            for i, j in WriteDic.items():
                WriteNewFile.writelines(i + "
    " + j);
        os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S"));
        os.rename("haproxy.conf_new", "haproxy.conf");
        print("修改成功!")
    
    def DeleteConf():
        "删除haproxy.conf中的指定内容"
        TitlesDic = {};
        WriteDic = {};
        count = 0;
        with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:
            ConfRead = ConfFile.readlines();
            for i in ConfRead:
                if (not i[0].isspace()):
                    count += 1;
                    TitlesDic[count] = {};
                    TitlesDic[count][i.strip()] = "";
                    Titles = i.strip();
                    WriteDic[Titles] = "";
                else:
                    TitlesDic[count][Titles] += i;
                    WriteDic[Titles] += i;
        for i in TitlesDic.keys():
            k = list(dict(TitlesDic[i]).keys())[0]
            print(i, k);
        UserSelectTwo = input("请选择您要删除的字段>>>:");
        with open("haproxy.conf_new", mode="w+", encoding="utf8") as WriteNewFile:
            WriteDic.pop(list(dict(TitlesDic[int(UserSelectTwo)]).keys())[0])
            for i, j in WriteDic.items():
                WriteNewFile.writelines(i + "
    " + j);
        os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S"));
        os.rename("haproxy.conf_new", "haproxy.conf");
        print("删除成功");
    定义的函数集合
  • 相关阅读:
    AspNetPager分页控件
    Asp.Net MVC 路由表
    自动检测海岸线,生成海浪网格
    斜坡刷子,一种好用的地形编辑方式
    用NVPerfHud4剖析Farcry的绘制过程
    初学BSP,上一些测试数据
    让游戏通过红蓝立体眼镜展现立体效果
    没有贴图拉伸的陡峭悬崖
    刚刚做的Bloom(伪HDR)效果
    近两个礼拜地图编辑器的一些进展
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6675048.html
Copyright © 2020-2023  润新知