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 + "\n", j);

def InsertConf():
    "在haproxy,conf中追加一段内容"
    print("目前只能针对bakend字段进行添加操作")
    bakend = {}
    com = "backend\t" + input("请输入域名:") + "\n"
    bakend[com] = "";
    bakend[com] += ("\tserver\t" + input("Server:") + "\t");
    bakend[com] += ("weight\t" + input("weight:") + "\t");
    bakend[com] += ("maxconn\t" + input("maxconn:") + "\n");
    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\t" + input("请输入域名:")
    bakend[com] = "";
    bakend[com] += ("\tserver\t" + input("Server:") + "\t");
    bakend[com] += ("weight\t" + input("weight:") + "\t");
    bakend[com] += ("maxconn\t" + input("maxconn:") + "\n");
    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 + "\n" + 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 + "\n" + j);
    os.rename("haproxy.conf", "haproxy.conf_bak" + time.strftime("%Y%m%d%H%M%S"));
    os.rename("haproxy.conf_new", "haproxy.conf");
    print("删除成功");
定义的函数集合

 

posted @ 2017-04-06 19:21  DragonFire  阅读(482)  评论(0编辑  收藏  举报