我正在尝试阅读Django中的纯文本。
基本上我想打开一个文件,获取一个特定的单词,然后根据其他任何内容进行更改。
这就是我所拥有的:
def address_L1():
file = open("interfaces.txt","r")
content = file.read()
file.close()
address = re.findall('address\s(.*?)\s',open('interfaces.txt','r').read())
if address:
print address[0]
else:
print 'no Address found!'
return address[0]
在这里,我打开一个文件,搜索address
旁边的单词,192.168.5.5
并且效果很好。
def get_interfaces(request):
address = str(address_L1())
if 'address' in request.POST:
write_template(request)#This is for my writing function
return render(request, 'interfaces.html', {'address':address})
在这里,我将模板中的内容传递给address
我的意思是,192.168.5.5
将显示在模板中。
<form method="post" action="">{% csrf_token %}
<label for="your_name">Address: </label>
<input id="your_name" type="text" name="address" value="{{ address }}">
<br>
<input type="submit" class="btn btn-success btn-xs" value="Guardar Cambios">
</form>
这是我的html,我正在显示我的变量,有一个输入Address
,它会显示我的192.168.5.5
或address
变量中的任何内容。
到目前为止一切正常。
现在我正在写我的纯文字。
def write_template(request):
if request.method == 'POST':
get_address = address_L1()
change_address_L1 = request.GET.get("address", None)#Doing something with my input field in template
filedata= None
with open('interfaces.txt', 'r') as f:
filedata = f.readlines()
filedata=filedata.replace(get_address , change_address_L1)
with open('interfaces.txt', 'wb') as f:
f.writelines(filedata)
return render(request, 'interfaces.html')
基本上我想要做的是获取input address
中的内容并替换我输入的内容,我的意思是当我运行我的代码时,我会看到我的输入192.168.5.5
我想要删除它值并输入192.168.0.0
并更改我的值。当我尝试这样做时,我收到了这个错误:
'list'对象没有属性'replace'
我该如何解决这个问题?我怎样才能成功地在我的纯文本中写字? 我究竟做错了什么? 提前致谢!!
答案 0 :(得分:2)
如错误所示,filedata
是一个列表。那是因为f.readlines()
为您提供了一个列表,其中每个元素都是文件中的一行。
如果您想将整个事物作为单个字符串,请改为f.read()
。