2016-10-18 2 views
-1

Ich möchte in einer Textdatei in Kolben suchen und ersetzen.Suchen und Ersetzen in einer Textdatei in 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') 

Dieser Code löscht immer alle Zeilen in meiner TXT-Datei. Und ich habe Unicode und "input() schon aktiv" erros.

Ist dies ein korrekter Weg, dies zu tun? Ich muss mit Python arbeiten 2.6

Antwort

1

Ihr Code wird immer alle Zeilen löschen, da Sie in beiden Fällen Zeilen nicht in Dateien zurückschreiben, d. H. Wenn search_line vorhanden ist und wenn search_line nicht vorhanden ist.

Bitte überprüfen Sie den folgenden Code mit Kommentaren inline.

@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

Vielen Dank. Wenn ich "\ n" hinzufüge, habe ich extra Leerzeilen. Wie könnte ich das vermeiden? – TheNone

+1

Streifen Sie vor dem Drucken - Drucken (x.Strip()) –

+1

Sie machen meinen Tag. Vielen Dank. – TheNone

Verwandte Themen