zoukankan      html  css  js  c++  java
  • 更改文件,某一行

     1 def fetch(data):
     2     print('这是查询功能')
     3     tag = False
     4     data = 'aaaa %s\n'%data
     5     res_data = []
     6     with open('bbb','r',encoding='gbk') as file:
     7         for i in file:
     8             if i == data:
     9                 tag = True
    10                 continue
    11             if tag == True and i.startswith('aaa'):
    12                 break
    13             if tag == True:
    14                 res_data.append(i)
    15                 print(i)
    16     return res_data
    17 def add():
    18     pass
    19 def delete():
    20     pass
    21 def change(data):
    22     print('你要更改的数据是%s'%data)
    23     old_addr =data[0]['backend']
    24     old_to = "        server  %s  98798  %s\n"%(data[0]['record']['server'],data[0]['record']['98798'])
    25     need_to = "        server  %s  98798  %s\n"%(data[1]['record']['server'],data[1]['record']['98798'])
    26     res = fetch(old_addr)
    27     print(res)
    28     if old_to in res:
    29         a = res.index(old_to)
    30         res[a] = need_to
    31         res.insert(0,'aaaa %s\n'%old_addr)
    32         tag = False
    33         write_or = True
    34         old_addr2 = 'aaaa %s'%old_addr
    35         with open('bbb','r') as old_file,\
    36                 open('bbb_new','w') as new_file:
    37             for backend in old_file:
    38                 if backend.strip() == old_addr2:
    39                     tag = True
    40                     continue
    41                 elif backend.startswith('aaaa'):
    42                     tag = False
    43                 if not tag:
    44                     new_file.write(backend)
    45                 if tag and write_or:
    46                     for i in res:
    47                         new_file.write(i)
    48                     write_or = False
    49 
    50     else:
    51         print('没有要修改的数据')
    52     return '更改成功'
    53 
    54 if __name__ =="__main__":
    55     msg = '''
    56     1:查询
    57     2;增加
    58     3:删除
    59     4:更改
    60     5:退出'''
    61     func_list = {
    62         '1':fetch,
    63         '2':add,
    64         '3':delete,
    65         '4':change
    66     }
    67     while True:
    68         print(msg)
    69         choice = input("请输入需要选择的功能:")
    70         if not choice: continue
    71         if choice =='5':break
    72         data = input('请输入数据:')
    73         if choice != '1':
    74             data = eval(data)
    75         ress = func_list[choice](data)
    76         print(ress)
    77 输出:
    78     1:查询
    79     2;增加
    80     3:删除
    81     4:更改
    82     5:退出
    83 请输入需要选择的功能:4
    84 请输入数据:[{'backend':'www.asia.com','record':{'server':'jdfjsk','98798':'sajdfkjahskjf'}},{'backend':'www.asia.com','record':{'server':'aaaaa','98798':'bbbbbb'}}]
    85 你要更改的数据是[{'backend': 'www.asia.com', 'record': {'server': 'jdfjsk', '98798': 'sajdfkjahskjf'}}, {'backend': 'www.asia.com', 'record': {'server': 'aaaaa', '98798': 'bbbbbb'}}]
    86 这是查询功能
    87         server  jdfjsk  98798  sajdfkjahskjf
    88 
    89         server  jdfjsdsk  98798  sajdfksasjahskjf
    90 
    91         server  jdfsdjsk  98798  sajdfksdjahskjf
    92 
    93         server  jdfxcjsk  98798  sajdfkjsaahskjf
    94 
    95         server  jdfjsxck  98798  sajdfkxxzjahskjf
    96 
    97 ['        server  jdfjsk  98798  sajdfkjahskjf\n', '        server  jdfjsdsk  98798  sajdfksasjahskjf\n', '        server  jdfsdjsk  98798  sajdfksdjahskjf\n', '        server  jdfxcjsk  98798  sajdfkjsaahskjf\n', '        server  jdfjsxck  98798  sajdfkxxzjahskjf\n']
    98 None
  • 相关阅读:
    nuxt实践
    安卓H5软键盘遮挡输入框
    h5复制粘贴板,打开APP功能
    MVC3
    MVC3
    C#高编
    接口的显式实现(转)
    E-Retail 框架学习
    C#高编
    实现DIV居中布局三种途径(转)
  • 原文地址:https://www.cnblogs.com/ch2020/p/12383387.html
Copyright © 2011-2022 走看看