Sto provando a sovrascrivere un file. Ho basato la mia risposta su questo Read and overwrite a file in PythonCome sovrascrivere un file in Python?
Per completare i miei codici:
<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'))
L'uscita dei miei attuali codici:
Il file contiene cat_desc
quando provo riscrivere ancora una volta come custom
. Riscrive come customc
. Si noti il c
alla fine, deve essere solo custom
.
Qui è quello che sto cercando di realizzare:
- scrivo su file, ad esempio,
cat_desc
- Se voglio scrivere di nuovo, per esempio
custom
, ilcat_desc
deve essere rimosso e sostituito concustom
.
Quale linea è l'errore che si verificano su? – Serdalis
http://docs.python.org/2/library/re.html#re.sub re.sub accetta tre argomenti stringa 'pattern'/'replacement', 'string'. Il quarto argomento (il tuo argomento "testo") deve essere un numero che specifica il conteggio – RedBaron
Qual è la linea con 're.sub' _supposed_ da fare? I parametri sono in diversi ordini nella domanda e nel traceback! –