2016-11-15 22 views
0

当我试图写一个文件中,除了我试图取代的话我的文件删除等一应俱全..当我在写一个文件删除以外的所有替代词

这里是我的代码:

app.route('/', methods=['POST']) 
def writing(): 
    address_1 = address1() 
    address_2 = network1() 

    try: 
     if request.method =="POST": 
      var1 = request.form ['addr1'] 
      var2 = request.form ['addr2'] 

      changeaddress = [var1, var2] 
      address = [address_1, address_2] 
      new_var = [] 
      cur_addr = 0 
      new_line = None 
      with open('address.txt','r+') as file: 
       for line in file: 
        if address[cur_addr] in line: 
         new_line = line.replace(address[cur_addr], changeaddress[cur_addr] + "\n") 
         cur_addr += 1 
        new_var.append(new_line) 

      with open('address.txt','w') as file:   
       file.writelines(new_var) 

    except BaseException as e: 
     print e 

    return render_template('addr.html', var1=var1,var2=var2) 

这是我的文本文件:

####### 
    Address 192.168.0.3 
    Address 192.168.0.1 <--- I'm reading this 
###### 
############## 
######## 
    Network 123.123.0.1 <---- I'm reading this 

乳宁的代码,例如后我更换192.168.0.11.1.1.1123.123.0.10.0.0.0我得到这个:

Address 1.1.1.1 
Network 0.0.0.0 

正如你可以看到删除除了我替换的东西之外的所有东西。我想得到这样的东西:

####### 
    Address 192.168.0.3 
    Address 1.1.1.1 
###### 
############## 
######## 
    Network 0.0.0.0 

所以我的应用程序不应该取代我想要替换的行。

回答

3

您只是将被替换的行添加到您编写的列表中。

正如我在上一个问题中所说的那样,缩进新行,并且在那里不清楚的地方,附加未替换的行。

if address[cur_addr] in line: 
    # replace 
    new_var.append(new_line) 
else: 
    # keep 
    new_var.append(line) 
相关问题