2016-11-15 2 views
0

以外のすべてを削除し、私は交換してくださいしようとしている言葉を除いて、私のファイルのすべてを削除します。..Iをファイルに書いている置換されたワード

ここに私ですコード:

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

例のコードをruningて後、私はのため1.1.1.1123.123.0.1ため192.168.0.1を置き換える:

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 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) 
関連する問題