#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. ты делаешь мой день. Спасибо.