2016-10-18 5 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"에로스가 있습니다.

올바른 방법입니까? 나는 파이썬 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