不完全知道如何問這個問題,但在這裏不言而喻的列表。項目添加到一個空表蟒蛇
我有一個空白列表
我想在列表中的元素添加到列表中。
所以在我的情況下,我期待通過的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
希望有人知道我在說什麼。聖誕節快樂!
未來,請解釋什麼不起作用(例如發佈您正在觀察的異常或意外行爲),而不僅僅是傾銷所有代碼。在這種情況下,可以輕鬆地找到並修復至少部分問題,因爲代碼中存在明顯的錯誤(嘗試索引數字),但情況並非總是如此。還要嘗試創建最簡單的代碼片段,以說明您的問題,而不是發佈包含大量絨毛的代碼。如果你花了一些時間在這裏創建一個簡單的例子,你很可能解決了你自己的問題。 –