`

python文件操作

 
阅读更多

给一个配置文件

  用户输入字符串

  转换为字典

 

import json 

s=input(">>")

 

dic = json.loads(s)

type(dic)

 

backend 下server 下添加一条纪录

 

添加一条纪录 

  删除一条纪录

 

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 test.oldboy.org

        server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000

        server 100.1.7.9 100.1.7.999 weight 20 maxconn 3000

 

 

 

 

 

 

分享到:
评论
2 楼 xdx2599 2016-01-20  
#!/usr/bin/python
#  -*- coding: utf-8 -*-

import  json
import  copy
import os

# strings = '{"bakend": "www.oldboy.org","record":{"server": "100.1.7.99","weight": 20,"maxconn": 30}}'
# dict_info = json.loads(strings)
# dic_record = dict_info.get("record")
# addStrings = "server %s %s weight %d maxconn %d" % (dic_record.get("server"),dic_record.get("server"),dic_record.get("weight"),dic_record.get("maxconn"))


def myInput():
    try:
        strings = input(">>")
        dict_info = json.loads(strings)
        dic_record = dict_info.get("record")
        addStrings = "server %s %s weight %d maxconn %d" % (dic_record.get("server"),dic_record.get("server"),dic_record.get("weight"),dic_record.get("maxconn"))
        return  addStrings
    except Exception as err:
        print(err)
# print(addStrings)
#['server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000', 'server 100.1.7.999 100.1.7.999 weight 20 maxconn 3000']

# "server %s %s weight %d maxconn %d" % (dict_info['record']['server'], dict_info['record']['server'], dict_info['record']['weight'], dict_info['record']['maxconn'])

# print(dic_record)
# print(dic_record.get("server"))
filename="ha.conf"
title="backend"
contextflag="server"
addRecord = ""
controller = True
while(controller):
    try:
        addRecord=myInput()
        controller=False
    except Exception as err:
        print(err)
def fetch(filename,title,contextflag):
    record_list = []
    with open(filename) as obj:
        flag = False
        for line in obj:
            line = line.strip()
            if line.startswith(title):
                flag = True
                continue
            if flag and line.startswith(contextflag):
                record_list.append(line)
                continue
            else:
                flag = False
    return record_list
record_list = fetch(filename,title,contextflag)
new_list=copy.deepcopy(record_list)
# print(new_list.__contains__(addStrings))
if(new_list.__contains__(addRecord)):
    print("纪录已存在")
    exit()
new_list.append(addRecord)
# print(record_list.__len__())
# print(new_list)

with open(filename) as read_file, open('tmp', 'w') as write_file:
    lines = read_file.readlines()
    flag = False
    counter = 0
    for line in lines:
         line = line.strip()
         if line.startswith(title):
                write_file.writelines(line+"\n")
                flag = True
                continue
         if flag and line.startswith(contextflag):
             counter=counter+1
             if(counter==record_list.__len__()):
                 flag = False
                 for record in new_list:
                    write_file.writelines(record+"\n")
                 counter=0
             continue
         if flag and record_list.__len__()==0:
             write_file.writelines(new_list)
         write_file.writelines(line+"\n")
read_file.close()
write_file.close()
if os.path.exists("ha.bak"):
   os.remove("ha.bak")
os.rename('ha.conf','ha.bak')
os.rename('tmp','ha.conf')


1 楼 xdx2599 2016-01-20  
#!/usr/bin/python
#  -*- coding: utf-8 -*-

import  json
import  copy
import os

strings = '{"bakend": "www.oldboy.org","record":{"server": "100.1.7.99","weight": 20,"maxconn": 30}}'

dict_info = json.loads(strings)
dic_record = dict_info.get("record")
addStrings = "server %s %s weight %d maxconn %d" % (dic_record.get("server"),dic_record.get("server"),dic_record.get("weight"),dic_record.get("maxconn"))
# print(addStrings)
#['server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000', 'server 100.1.7.999 100.1.7.999 weight 20 maxconn 3000']

# "server %s %s weight %d maxconn %d" % (dict_info['record']['server'], dict_info['record']['server'], dict_info['record']['weight'], dict_info['record']['maxconn'])

# print(dic_record)
# print(dic_record.get("server"))
filename="ha.conf"
title="backend"
contextflag="server"
def fetch(filename,title,contextflag):
    record_list = []
    with open(filename) as obj:
        flag = False
        for line in obj:
            line = line.strip()
            if line.startswith(title):
                flag = True
                continue
            if flag and line.startswith(contextflag):
                record_list.append(line)
                continue
            else:
                flag = False
    return record_list
record_list = fetch(filename,title,contextflag)
new_list=copy.deepcopy(record_list)
new_list.append(addStrings)
print(record_list.__len__())
# print(new_list)

with open(filename) as read_file, open('tmp', 'w') as write_file:
    lines = read_file.readlines()
    flag = False
    counter = 0
    for line in lines:
         line = line.strip()
         if line.startswith(title):
                write_file.writelines(line)
                flag = True
                continue
         if flag and line.startswith(contextflag):
             counter=counter+1
             if(counter==record_list.__len__()):
                 flag = False
                 write_file.writelines(new_list)
                 counter=0
             continue
         if flag and record_list.__len__()==0:
             write_file.writelines(new_list)
         write_file.writelines(line)
read_file.close()
write_file.close()
if os.path.exists("ha.bak"):
   os.remove("ha.bak")
os.rename('ha.conf','ha.bak')
os.rename('tmp','ha.conf')


相关推荐

    Python文件操作(课件)

    【Python文件操作】 在Python编程中,文件操作是一项核心技能,它允许程序与外部存储进行数据交互。Python提供了简洁的API来实现文件的读、写、追加等各种操作。本章将深入探讨Python文件操作的各个方面。 首先,...

    python文件操作实验报告.doc

    Python文件操作是编程中不可或缺的一部分,它涉及到对文件的读取、写入、追加、移动、删除等操作。在Python中,文件操作通常通过内置的`open()`函数实现,结合不同的模式(如'r'、'w'、'a'等)来执行不同操作。 在...

    python 文件操作函数

    在Python编程语言中,文件操作是一项基础且重要的功能,它涉及到对文件的读取、写入、修改以及删除等操作。Python提供了丰富的内置函数来处理文件,这些函数可以帮助程序员高效地进行文件管理。下面,我们将深入探讨...

    python的相关文件操作练习

    在Python编程语言中,文件操作是一项基础且至关重要的技能,尤其对于数据处理、日志记录以及文件存储等应用场景。在“python的相关文件操作练习”中,我们将探讨如何使用Python进行文件的读取、写入、追加以及其他...

    05-Python文件操作

    Python文件操作思维导图,便捷整理思路,文件的打开与关闭、访问模式、关闭文件、文件的读写:写数据、读数据、文件的定位读写、文件的相关操作

    18-Python文件操作

    18_Python文件操作 文章对应的 jupyter notebook 对应的源码文件,欢迎下载学习使用。 文章的目录如下: 计算机中的文件 文件处理步骤 获取文件对象 编码(Encoding) 解码(Decoding) 编码解码注意事项 读取文件的...

    python 文件操作

    ### Python 文件操作详解 #### 一、引言 在Python编程中,文件操作是一项非常基础且重要的技能。无论是处理文本数据、配置文件还是其他类型的文件,掌握如何有效地读写文件都是必不可少的。本文将详细介绍Python中...

    python文件操作seek()偏移量,读取指正到指定位置操作

    python 文件操作seek() 和 telll() 自我解释 file.seek()方法格式: seek(offset,whence=0) 移动文件读取指针到制定位置 offset:开始的偏移量,也就是代表需要移动偏移的字节数。 whence: 给offset参数一个定义,...

    Python-Flametree让Python文件操作变得更容易

    文件操作是Python中的基本功能之一,包括读写文件、管理目录等。Flametree库为Python开发者提供了一个简洁、易于使用的接口,使得文件和目录的管理变得更加方便。在本文中,我们将深入探讨Flametree如何简化Python的...

    Python文件操作

    Python文件操作的相关整理,包括打开关闭文件、读写文件、文件拷贝等

    Python基础案例教程教案-Python文件操作.doc

    **Python文件操作基础** 在Python编程中,文件操作是一项重要的技能,它允许程序与外部数据进行交互。在Python中,`open()`函数是用于打开文件的关键工具,它提供了读取、写入和追加文件内容的功能。在"Python基础...

    关于Python文件操作,api的命令整理

    Python 文件操作 API 命令整理 Python 文件操作是 Python 编程中非常重要的一部分,它提供了多种方式来操作文件和文件夹。下面是 Python 文件操作的 API 命令整理。 获取当前工作目录 Python 中可以使用 `os` ...

    python文件操作.xmind

    python文件操作.xmind

    Python基础项目教程-教案教学设计第6章-Python文件操作.docx

    本章节主要介绍了Python中的文件操作基础知识,包括文件的打开与关闭、文件读写的基本语法和注意事项,以及通过具体案例来加深对这些概念的理解。 #### 二、教学目标 - **能力目标**:学生应该能够在Python中使用`...

    清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx

    【Python文件操作】是编程学习中的重要一环,特别是在Python中,文件操作是日常开发中不可或缺的部分。在清华大学的精品Python学习PPT课件中,第10章专门讲解了Python如何进行文件操作,这对于Python新手和有经验的...

    完整图文版教程 优质的Python基础入门教程 讲解清晰 PPT课件 07、Python文件操作 (共19页).rar

    这个"完整图文版教程 优质的Python基础入门教程 讲解清晰 PPT课件 07、Python文件操作 (共19页)"是针对初学者设计的,旨在帮助他们掌握Python中的文件操作,这是Python编程中不可或缺的一部分。 文件操作是任何...

Global site tag (gtag.js) - Google Analytics