2016-10-18 52 views
-1

我想搜索並替換燒瓶中的文本文件。搜索並替換Flask中的文本文件

@app.route('/links', methods=['POST']) 
def get_links(): 
    search_line= "blah blah" 
    try: 
     for line in fileinput.input(os.path.join(APP_STATIC, u'links.txt')): 
     x = line.replace(search_line, 
          search_line + "\n" + request.form.get(u'query')) 

    except BaseException as e: 
     print e 

    return render_template('index.html') 

此代碼總是刪除我的txt文件中的所有行。我有unicode和「input()已經激活」的錯誤。

這是一個正確的方法來做到這一點?我必須使用python 2.6

回答

1

由於在兩種情況下都不會將行寫回文件,即search_line存在且search_line不存在時,您的代碼將始終刪除所有行。

請檢查以下代碼並內置評論。

@app.route('/links', methods=['POST']) 
def get_links(): 
    search_line= "blah blah" 
    try: 
     for line in fileinput.input(os.path.join(APP_STATIC, u'links.txt'),inplace=1): 
      #Search line 
      if search_line in line: 
        #If yes Modify it 
        x = line.replace(search_line,search_line + "\n" + request.form.get(u'query')) 
        #Write to file 
        print (x) 
      else: 
       #Write as it is 
       print (x) 

    except BaseException as e: 
     print e 

    return render_template('index.html') 
+1

非常感謝。當我添加「\ n」時,我有額外的空白行。我怎麼能避免這種情況? – TheNone

+1

打印前將其剝離 - print(x.strip()) –

+1

您讓我的一天。謝謝。 – TheNone