我需要幫助我不知道如何解決它。Django - 沒有按預期取代我的字符串
我正在處理文件。基本上我打開一個文件,閱讀它裏面的內容,尋找一個詞,並替換它旁邊的單詞
我打開一個文本文件,在這種情況下,我有兩個詞用相同的名稱,他們分開PART 1
和PART 2
這是我car.txt
PART 1
car toyota
PART 2
car toyota
,你可以看到我已經分居了同一個詞part
所以我的腳本將尋找兩者在顯示此我的模板..
這是它是如何工作的
views.py
def car_p1():
file = open("car.txt","r")
content = file.read()
file.close()
car = re.findall('car\s(.*?)\s',open('car.txt','r').read())
if car:
print car
else:
print 'no car found!'
return car[0]
def car_p2():
file = open("car.txt","r")
content = file.read()
file.close()
car = re.findall('car\s(.*?)\s',open('car.txt','r').read())
if car:
print car
else:
print 'no car found!'
return car[1]
def get_items(request):
car = car_p1()
car2 = car_p2()
if 'car' in request.POST:
car_change(request)
return redirect('get_items')
return render(request, 'cars.html', {'car':car, 'car2':car2,})
def car_change(request):
car = car_p1()
car2 = car_p2()
if request.method == 'POST':
change_car = str(request.POST['car_1'])
change_car_2 = str(request.POST['car_2'])
filedata= None
with open('car.txt', 'r') as f:
filedata = f.read()
filedata=filedata.replace(car , change_car , 1)
filedata=filedata.replace(car2 , change_car_2 , 1)
with open('car.txt', 'wb') as f:
f.writelines(filedata)
return render(request, 'cars.html')
這裏是我的問題。我想從豐田改爲現代的第一部分,並行得通。 我得到這樣的
PART 1
車現代
PART 2
車豐田
,但如果我想從豐田改變部分2到現代將不會取代第2部分,它將取代我的part1 ..得到這樣的事情:
PART 1
車現代
PART 2
車豐田
我想第2部分,使其工作作爲第1部分呢?這有什麼錯我的碼?
這是我的html:
<form method="post" class="" action="">{% csrf_token %}
<label for="car1">CAR 1: </label>
<input id="car1" class="form-control" type="text" name="car_1" value="{{ car }}">
<br>
<label for="car2">CAR 2: </label>
<input id="car2" class="form-control" type="text" name="car_2" value="{{ car2 }}">
<br>
<br>
<input type="submit" name="car" class="btn btn-primary btn-lg btn-block" value="Save">
</form>
希望你能幫助我。
我會給你很多幫助。
謝謝!
OP返回車[1]在car_p2()因此只出現一次。 OP的替換功能正常工作 – haifzhan
@HaifengZhang OP的初始文件包含兩行:'car toyota'。他試圖只替換其中的第二個。 – neverwalkaloner
car_p1()返回PART1區域的豐田,car_p2()返回PART2區域的豐田區域 – haifzhan