不完全知道如何问这个问题,但在这里不言而喻的列表。项目添加到一个空表蟒蛇
我有一个空白列表
我想在列表中的元素添加到列表中。
所以在我的情况下,我期待通过的apache.conf寻找包含ServerAlias任何行。
如果它发现它,我想这行添加到子表的最后一个元素。 左右....
[['ServerAlias test.com']]
如果发现在particuar虚拟主机另一个项目,将这个项目添加到同一子列表。
[['ServerAlias test.com','ServerAlias neww.com']]
下一次它经历新的虚拟主机。我想在列表末尾添加一个列表并重新开始。等等......
[['ServerAlias test.com','ServerAlias neww.com'],['ServerAlias cranberry.com']]
我知道我做了一个可怕的工作来描述这个。
这里是我的非工作代码,以便它可能会有所帮助。
def buildvars(fileoutput):
import time
import re
servername=[]
docroot=[]
serveralias=[[]]
vhostdata={}
invhost=0
for line in fileoutput.split('\n'):
if line == '' or re.search('^#',line) or re.search('^\s+#',line): #delete blank lines... I dont care about them
pass
else:
if re.search('^\s*\<VirtualHost', line): #check if we are in a vhost
invhost=1 #mark that we are in a vhost
aliascounter=0
elif re.search('^\s*\</VirtualHost', line):
invhost=0
if aliascounter==0:
serveralias.append('None')
if invhost == 1:
if re.search('^\s*ServerName.*$',line): #if we are in a vhost, check if the line contains servername
servername.append(line.strip()) #then append it to the vhosts list
if re.search('^\s*DocumentRoot.*$',line):
docroot.append(line.strip())
if re.search('^\s*ServerAlias.*$',line):
if not serveralias:
serveralias[0[0]].append(line.strip())
else:
serveralias[-1[0]].append(line.strip())
aliascounter+=1
希望有人知道我在说什么。圣诞节快乐!
未来,请解释什么不起作用(例如发布您正在观察的异常或意外行为),而不仅仅是倾销所有代码。在这种情况下,可以轻松地找到并修复至少部分问题,因为代码中存在明显的错误(尝试索引数字),但情况并非总是如此。还要尝试创建最简单的代码片段,以说明您的问题,而不是发布包含大量绒毛的代码。如果你花了一些时间在这里创建一个简单的例子,你很可能解决了你自己的问题。 –