2017-01-10 4 views
-2

У меня есть другой набор линий, как показано ниже:Как вставить новую строку между различными наборами строк?

L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0 
L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0 
L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0 
L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0 
L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0 
L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1 
L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1 
L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0 
L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0 
L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1 
L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0 

, где я хочу, чтобы вставить новую строку перед каждым новым набором линий, как показано ниже:

L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0 
L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0 
L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0 

L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0 
L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0 

L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1 
L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1 
L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0 
L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0 

L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1 
L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0 

Благодарим Вас заранее

+0

жаль следующий раз я постараюсь, чтобы положить мои попытки – DarwinCode

+0

Там нет " время "здесь, в SO. Любой может приехать сюда из поиска в google. Поэтому вы должны быть обеспокоены качеством ваших прошлых постов. Я предлагаю вам отредактировать ваш вопрос, чтобы он мог помочь другим читателям. –

ответ

2

Разделить линии, перебирать каждую строку, идентифицирующего текст, который должен быть сгруппирован по, если сгруппированному по изменению текста добавить новую строку:

text = "L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0\n"+"L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0\n"+"L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0\n"+"L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0\n"+"L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0\n"+"L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1\n"+"L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1\n"+"L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0\n"+"L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0\n"+"L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1\n"+"L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0\n" 

print(text) 

iter = text.splitlines(False) 
lastid = "" 
for line in iter: 
    id = line[line.find('.')+1:line.find(';')] 
    if id != "" and lastid != id: 
     print("") 
    print(line) 
    lastid = id 
+0

thankyou somuch и в следующий раз попробую поставить свои попытки – DarwinCode

+0

@Coder Должно использовать другое имя переменной. 'iter' - это встроенное имя функции. – MYGz

1

Вы должны хотя бы загрузить часть кода, который вы написали, или уточнить, что хотите. Из того, что я могу сказать, вам кажется, что нужно разбить его на основе второго сообщения (часть между. И первым;), поэтому я бы сохранил этот раздел, а затем сравнил его со следующей строкой. Если эта строка не соответствует, просто добавьте новую строку '\ n' в строку, получите новый раздел новой строки и повторите.

+0

спасибо somuch – DarwinCode

Смежные вопросы