我試圖覆蓋文件。我在此基礎上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 2013-03-19 04:28:52
http://docs.python.org/2/library/re.html#re.sub re.sub接受三個字符串參數'pattern'/'replacement','string'。第四個參數(你的「文本」參數)必須是一個指定計數的數字 – RedBaron 2013-03-19 04:48:06
're.sub' _supposed_要做什麼?參數在問題和回溯中的順序不同! – 2013-03-19 04:48:11