2015-12-07 3 views
-2

Как я могу изменить этот текст в Python?Группа, основанная на пробелах

Convert это

    Main1 
        [SPACE]Submain1 
        [SPACE]Submain2 
        [SPACE]Submain3 
        [SPACE][SPACE]Submain3-1 
        [SPACE][SPACE]Submain3-2 

Для этого

    Main1 
        Main1;Submain1 
        Main1;Submain2 
        Main1;Submain3 
        Main1;Submain3;Submain3-1 
        Main1;Submain3;Submain3-2 
+5

Итак, что вы пробовали? – Arc676

+0

Спасибо, я решил и отредактировал первое сообщение. – arslan

+2

Вы можете ответить на свой вопрос и пометить свой ответ как принятый, чтобы показать, что проблема решена. Вы не должны публиковать ответы в своем вопросе. – Arc676

ответ

0

Я решаемой с помощью этой функции. Функция включает максимальное количество пробелов (глубокое) и шаг. На основании вышеописанного выходного максимального номера места 2 и этапа 1.

def spacegroup(listname,deep,deepstep): 
    while deep>deepstep-1: 
     temphosts0=listname[:] 
     for i in range(len(listname)): 
      for j in range(1,len(listname)): 
       if listname[i][:deep]==' '*deep and listname[i-j][deep-deepstep]!=' ': 
        temphosts0[i]=listname[i-j].rstrip()+';'+listname[i] 
        break 
     listname=temphosts0[:] 
     deep-=deepstep 
    return temphosts0 

hosts0 = open('a','r').readlines() 
print ''.join(spacegroup(hosts0,2,1)).replace(' ','')