2016-10-18 23 views
-1

フラスコ内のテキストファイルを検索して置換したいと考えています。フラスコ内のテキストファイルの検索と置換

@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ファイル内のすべての行を削除します。私はユニコードと "input()already active" errosを持っています。

これは正しい方法ですか? 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

印刷前にそれを取り除く - 印刷(x.strip()) –

+1

あなたは私の一日を作る。ありがとうございました。 – TheNone

関連する問題