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

# 编辑者:闫龙
import MyFuncation;
Menu = ["查询","添加","修改","删除"]
while True:
for i in range(len(Menu)):
print(i+1,Menu[i]);
UserSelect = input("请选择您要操作的类型>>>:");
if (UserSelect == "") :
MyFuncation.SelectConf();
elif(UserSelect == ""):
MyFuncation.InsertConf();
elif(UserSelect == ""):
MyFuncation.UpdateConf();
elif(UserSelect == ""):
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("删除成功");

定义的函数集合

Python练习-函数(方法)的定义和应用的更多相关文章

  1. Python列表函数&方法

    Python包含以下函数: 序号 函数 1 cmp(list1, list2)比较两个列表的元素 2 len(list)列表元素个数 3 max(list)返回列表元素最大值 4 min(list)返 ...

  2. 【Python】[函数] 调用与定义

    1.数据类型转换 int(),float(),str(),bool('1')2.定义函数使用 def关键字,依次写出 函数名.括号.括号中的参数.冒号,然后在缩进体中写函数内容 例子 求绝对值的函数 ...

  3. Python入门 - 函数方法

    本节主讲python函数的基本用法,主要包括传递参数.匿名函数和变量作用域. 一.传递参数 python除了传递必需参数外,还可以传递默认参数,不定长参数和关键字参数. 1. 传递必需参数 def m ...

  4. AmIBeingDebugged  函数方法的定义实现

    #include <assert.h> #include <stdbool.h> #include <sys/types.h> #include <unist ...

  5. python 中函数参数传递形式

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  6. Go 函数方法

    在 Go 语言中,函数和方法不太一样,有明确的概念区分.其他语言中,比如 PHP 函数就是方法,方法 就是函数,但在 Go 语言中,函数是不属于任何结构体.类型的方法,也就是说函数是没有接收者的:而方 ...

  7. Python常用函数记录

    Python常用函数/方法记录 一. Python的random模块: 导入模块: import random 1. random()方法: 如上如可知该函数返回一个[0,1)(左闭右开)的一个随机的 ...

  8. python中函数的定义和详细的使用方法

    1. 函数的概念,函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集   2. 函数的作用,使用函数可以加强代码的复用性,提高程序编写的效率   3. 函数的使用,函数必须先创建才 ...

  9. Python新手学习基础之函数-概念与定义

    什么是函数? 函数是可以实现一些特定功能的方法或是程序,简单的理解下函数的概念,就是你编写了一些语句,为了方便使用,把这些语句组合在一起,给它起一个名字,即函数名.使用的时候只要调用这个名字,就可以实 ...

随机推荐

  1. shell 指令 摘录

    作者: learner811    本文摘自网络    权限:用户 读写 ugoa rwx * useradd userdel groupadd groupmod usermod su sudo wh ...

  2. 【版本管理】git本地操作

    1.初始化一个Git仓库,使用git init命令. 2.添加文件到Git仓库,分两步: • 第一步,使用命令git add 文件名,注意,可反复多次使用,添加多个文件: • 第二步,使用命令git ...

  3. jmeter发送json数据,报405、400错误解决方案

    1.405错误解决方案:添加HTTP信息头管理器(错误因数:发送格式未设置) 2.400错误解决方案:json文本格式有误(注意:换行.空格等)解决方案:对照json文本数据(错误因数:发送的json ...

  4. P4071 [SDOI2016]排列计数

    题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条 ...

  5. 【转】Word 2010 取消拼写/语法检查,隐藏红线/绿线

    转自:http://blog.chinaunix.net/uid-8203698-id-3040631.html 设置方法如下,在Word菜单栏-->文件-->选项-->校对,其中“ ...

  6. 【ARC077F】SS

    Description 如果某个串可以由两个一样的串前后连接得到,我们就称之为"偶串".比如说"xyzxyz"和"aaaaaa"是偶串,而& ...

  7. redis学习 - 数据持久化

    Redis提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内产生数据集的时间点快照(point-in-time snapshot) AOF持久化记录服务器执行的所有写操作命令,并在 ...

  8. Android中Selector的用法(改变ListView和Button的默认背景)

    Android中的Selector的用法 http://blog.csdn.net/shakespeare001/article/details/7788400#comments Android中的S ...

  9. jquery的serializeArray、param 与serializeArray 的区别与源码解析

    jQuery.param( obj, traditional ) 为url查询或者ajax 将对象或者数组转为url参数或ajax参数,是挂在jQuery对象上的静态方法,有码有真相: var myI ...

  10. Python之旅:字典

      Python数据类型 #作用:存多个值,key:value 存取,取值速度快 #定义:key必须是不可变类型,value可以是任意类型 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个 ...