2017-01-10 3 views
-2

Ich habe einen anderen Satz von Linien wie unten:Wie füge ich eine neue Zeile zwischen verschiedenen Zeilen ein?

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 

, wo ich wie unten eine neue Zeile vor jedem neuen Satz von Zeilen eingefügt werden soll:

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 

Sie im Voraus deinnkening

+0

leider beim nächsten Mal werde ich versuchen, meine Versuche zu setzen – DarwinCode

+0

gibt es keine " Zeit "hier in SO. Jeder könnte von einer Suche auf Google herkommen. Daher sollten Sie weiterhin von der Qualität Ihrer früheren Posts betroffen sein. Ich lade Sie ein, Ihre Frage zu bearbeiten, damit sie anderen Lesern helfen kann. –

Antwort

2

Split die Leitungen, durch jede Zeile durchlaufen, den Text zu identifizieren, die von gruppiert werden sollen, wenn sie von Textänderungen gruppiert hinzufügen neue Zeile:

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

danke somuch und nächstes Mal werde ich versuchen, meine Versuche setzen – DarwinCode

+0

@Coder sollte einen anderen Variablennamen verwenden. 'iter' ist ein eingebauter Funktionsname. – MYGz

1

Sie sollten zumindest etwas von dem Code hochladen, den Sie geschrieben haben, oder genauer sein, was Sie wollen. Von dem, was ich Ihnen sagen kann, scheinen Sie es auf der Grundlage des zweiten Beitrags (der Teil zwischen dem. Und dem ersten) zu teilen, also würde ich diesen Abschnitt speichern und ihn dann mit der nächsten Zeile vergleichen. Wenn diese Zeile nicht übereinstimmt, fügen Sie einfach eine neue Zeile '\ n' an die Zeichenfolge an, rufen Sie den neuen Abschnitt der neuen Zeile ab und wiederholen Sie den Vorgang.

+0

danke somuch – DarwinCode

Verwandte Themen