zoukankan      html  css  js  c++  java
  • python ------- 文件处理之增删改查-------作业

    注:这里的文件都是.txt格式的

    1,查询:

              只需一个文件,源文件是:“haporxy.conf”

    2,删除:

              因为文件是不能删除,这里使用写入的方式,需要建两个文件,

              源文件:“haporxy.conf”

              写入文件: “test5”

    3,增加:

              在文件末尾增加一个语句,需要两个文件。

              源文件:“haproxy.conf”

              写入文件:“test3”

    4,修改:

             需要两个文件。

             源文件::“haproxy.conf”

             写入文件:“test6”

    5,有点小bug,还待改进,

    6,代码如下:

    1.查询:

    输入:www.ordboy1.org

     1 list = []  #创建一个空列表
     2 flag = False #设置一个开关
     3 input1 = input("plesae your input "www.oldboy1.org" :")
     4 with open("haproxy.conf",encoding="utf-8") as f_read:  #把源文件以utf-8格式打开到f_read
     5     for line in f_read:  #遍历文件到line这个变量中
     6         if line.startswith("backend") and input1 in line: 
     7             flag = True
     8             continue  #跳出本层循环
     9 
    10         if line.startswith("backend"): #判断字符串是否以backend开头
    11             break
    12         if flag:
    13             list.append(line.strip()) #追加到空列表
    14 print("hello".center(50,"-"))
    15 
    16 for i in list:  #遍历列表
    17     print(i)


    2.删除:

    输入:{"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}}

     1 choice = input("please your input  is {} :")
     2     # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,maxconn:3333}}
     3     dic = eval(choice)  # 把输入的字符串转成字典
     4     tltle = dic["backend"]
     5     tetle1 = dic["record"]  #这个没有用
     6     with open("haproxy.conf", encoding="utf-8") as f_read, open("test5", "w", encoding="utf-8") as w_write:
     7 
     8         for line in f_read:
     9             w_write.write(line)
    10             if line.startswith("backend") and tltle in line:
    11                 # w_write.write(line)
    12                 break

    3.增加:

    输入:{"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}}

     1 choice = input("please your input is {}  : ")
     2     # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}}
     3     dic = eval(choice)  # 把字符串转成字典
     4     title = dic['backend']  # "www.oldboy20.org"
     5     record = dic['record']
     6     r_s = '        server %s weight %s maxconn %s
    ' 
     7           % (record['server'], record['weight'], record['maxconn'])
     8 
     9     with open("haproxy.conf", encoding="utf-8") as f_read, open("test3", mode="w", encoding="utf-8") as w_read:
    10         for line in f_read:
    11             w_read.write(line)
    12             if line.startswith('backend') and title in line:
    13                 # print('11111>')
    14                 w_read.write(r_s)
    15                 # w_read.write('=====>')
    16         w_read.flush()

    4.修改:

    输入:{"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}}

     1 choice = input("please your input is {} :")
     2     # {"backend":"www.oldboy20.org","record":{"server":1111,"weight":2222,"maxconn":3333}}
     3     dic = eval(choice)  #把输入的字符串转成字典
     4     tltel = dic["backend"]
     5     tltel1 = dic["record"]
     6     dic["record"]["server"] = "0000"
     7     dic["record"]["weight"] = "0000"
     8     dic["record"]["maxconn"] = "0000"
     9     # print(dic)
    10     #格式化字符串
    11     r_s = "        server %s weight %s maxconn %s" % (tltel1["server"], tltel1['weight'], tltel1["maxconn"])
    12     with open("haproxy.conf", encoding="utf-8") as f_read, open("test6", mode="w", encoding="utf-8") as w_write:
    13         for line in f_read:
    14             w_write.write(line) # 把line中的字符串写到w_write中
    15             if line.startswith("backend") and tltel in line: #判断 line中字符串否以“backend”开头,并且满不满足tetle在这行
    16                 w_write.write(r_s)  #把字符串写入到w_rite中
    17                 break   #跳出循环
  • 相关阅读:
    win7 安装 memcached
    Nginx执行php显示no input file specified的处理方法
    Nginx配置SSI
    Windows Services
    如何安装mysql服务
    windows下nginx+php简单配置
    Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分
    php常用方法总结
    弹出框以及提示插件lghdialog.js的使用
    webservice的简单示例的实现步骤
  • 原文地址:https://www.cnblogs.com/gaoyuan111/p/6681273.html
Copyright © 2011-2022 走看看