• Python3.x 文件操作练习


    # 要求

    1.可在配置文件中添加一条记录

    2.可删除配置文件中一条记录

    # 增加:

    1.用户输入以下字典类型的字符串(注意字串必须要用双引号"",因为json不能识别单引号)

    "u_input = input({"backend": "test.aa.com", "record": {"server": "100.1.7.213", "weight": 20, "maxconn": 30}})"

    2.通过json.loads()模块把字符串转换成字典

    3.通过格式化配置文件,在需要添加的位置设置value的值

    # 删除:

    1.选择用户输入需要删除的字符串,用strip()方法去除掉特殊符号

    2.按行读取配置文件,对比并排除需要删除的字符串,把排除后的数据存入列表中

    3.用"w"模式打开文件(把原来文件的内容清除),循环读取列表内容,并写入文件

    配置文件:(文件名:config.txt)
    ---------------------------
    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 aa.org
            bind 0.0.0.0:80
            option httplog
            option httpclose
            option  forwardfor
            log global
            acl www hdr_reg(host) -i www.aa.com
            use_backend www.aa.com if www
    
    backend www.bb.com
            server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000
    
            # 格式化显示
            # server": "{0}","weight": {1},"maxconn": {2}
    
    backend buy.cc.com
            server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000
    ---------------------------
     1 import json
     2 
     3 
     4 def add():
     5     '''
     6    添加一条数据
     7    :return: 
     8    '''
     9     # {"backend": "test.aa.com", "record": {"server": "100.1.7.213", "weight": 20, "maxconn": 30}}
    10     u_input = input("Please input add data:")
    11     dic = json.loads(u_input)
    12 
    13     server = dic["record"]["server"]
    14     weight = dic["record"]["weight"]
    15     maxconn = dic["record"]["maxconn"]
    16 
    17     with open("config.txt", 'r', encoding='utf-8') as f:
    18         file = f.read()
    19         result = file.format(server, weight, maxconn)
    20         print(file)
    21         print("=================" * 4)
    22 
    23     with open("config.txt", 'w', encoding='utf-8') as f:
    24         f.write(result)
    25         print(result)
    26 
    27 
    28 def dele():
    29     '''
    30    删除一条数据
    31    :return: 
    32    '''
    33     # u_input = input("Please input del data:")
    34     add_list = []
    35     with open('config.txt', 'r')as f:
    36         print("config files:")
    37         for item in f.readlines():
    38             print("
    %s" % item.strip("
    "))
    39 
    40         file = input("
    
    请输入需要删除的行数据:")
    41         f.seek(0)
    42         for item in f.readlines():
    43             if item.strip() != file.strip():
    44                 add_list.append(item)
    45 
    46     with open('config.txt', 'w', encoding='utf-8') as f:
    47         f.writelines(add_list)
    48         print("
    
    删除行:'%s'
    完成!!!" % file.strip())
    49 
    50 
    51 if __name__ == '__main__':
    52     num = int(input("请选择数字:
    【1】添加一条数据
    【2】删除一条数据
    "))
    53     if num == 1:
    54         add()
    55     elif num == 2:
    56         dele()
  • 相关阅读:
    根据坐标经纬度计算两点之间的距离
    C# 获取类名
    Post、Get请求
    Image和Base64相互转换
    Html checkbox全选
    .NET Core 中间件
    C# DataTable 用法
    imshow(A,[])和imshow(A)的区别
    Log-spectral distance
    CUDA
  • 原文地址:https://www.cnblogs.com/l729414559/p/6836321.html
Copyright © 2020-2023  润新知