Я пытаюсь переписать файл. Я основан мой ответ на этот Read and overwrite a file in PythonКак перезаписать файл в Python?
Чтобы закончить свои коды:
<select class="select compact expandable-list check-list"
ONCHANGE="location = this.options[this.selectedIndex].value;">
<option value="{% url envelopes:auto_sort %}?sort_by=custom">
Custom order
</option>
<optgroup label="Category">
<option value="{% url envelopes:auto_sort %}?sort_by=cat_asc">
Ascending order
</option>
<option value="{% url envelopes:auto_sort %}?sort_by=cat_desc">
Descending order
</option>
</optgroup>
</select>
def auto_sort(request):
sort_by = request.GET.get('sort_by', None)
if sort_by:
temp_path = "{0}/file.txt".format(settings.SITE_ROOT)
f=open(temp_path,'r+')
text = f.read()
text = re.sub('cat_asc', 'cat_desc', text)
f.seek(0)
f.write(text)
f.truncate()
f.close();
handle=open(temp_path,'w+')
handle.write(sort_by)
handle.close();
return HttpResponseRedirect(reverse('envelopes:editor'))
Выход из моих текущих кодов:
Файл содержит cat_desc
при попытке переписать снова custom
. Он переписывается как customc
. Обратите внимание на c
в конце, это должно быть только custom
.
Вот что я пытаюсь достичь:
- Я пишу на файл, например,
cat_desc
- Если я хочу написать еще раз, например
custom
, тоcat_desc
должны быть удалены и заменен наcustom
.
Какой линии ошибка происходит на? – Serdalis
http://docs.python.org/2/library/re.html#re.sub re.sub принимает три строковых аргумента 'pattern'/'replacement', 'string'. Четвертый аргумент (ваш «текстовый» аргумент) должен быть числом, определяющим счет – RedBaron
. Какова строка с 're.sub' _supposed_? Параметры находятся в разных порядках в вопросе и трассировке! –