Поиск и замена в текстовом файле в Flask

#python #flask

#python #flask

Вопрос:

Я хочу выполнить поиск и замену в текстовом файле в 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')
  

Этот код всегда удаляет все строки в моем текстовом файле. И у меня есть ошибки 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», у меня есть дополнительные пустые строки. Как я мог этого избежать?

2. Удалите его перед печатью — print (x.strip())

3. ты делаешь мой день. Спасибо.