2016-04-11 18 views
-1

Ich habe eine Textdatei, und ich möchte nur bestimmte Zeilen in dieser Datei extrahieren ich es in einer anderen Datei setzenExtrahieren Besondere Zeilen in einer Textdatei

for line in cFicIn: 

fieldwidths = (22, 22, 22) # negative widths represent ignored padding fields 
parse = make_parser(fieldwidths) 
fields = parse(line) 

ich drei Spalten im Text haben Datei. Felder [0] geben den Spalten 0 ....

Frequency [Hz]   Peak amplitude   Phase [degrees] 
117.131422636205   1528954.28753915   -54.0642640720085 
234.26284527241   1051596.71706853   -6.8190622364283 
351.302901744313   456787.344479019   47.6494383764102 
Peak interpolation: Numeric 

aber mich ich die Daten wiederherstellen möchten, die zwischen den beiden Zeilen in der Datei ist zu wissen, habe ich several.The Zeilenfrequenz und Spitzen Interpolation

if 'Frequency' and 'Phase' in line : 


     newline=(str(a)+';'+fields[0].strip()+';'+fields[1].strip()+';'+fields[2].strip()+';'+'\n') 
     newline.replace(" ","") 
     a=a+1 
     print(newline) 



     csv_file.write(newline) 

     csv_file.close() 

Antwort

0

eine Bool Variable wie should_process_line und Prozesslinie genannt erstellen iff diese Variable auf True gesetzt ist. Setze es auf "True", nachdem du auf "Frequency" und "Phase" gestoßen bist, setze es auf "False", nachdem du auf "Peak interpolation" gestoßen bist. Während wir gerade dabei, Ihre Newline Generation sind als

newline = str(a) + ';'.join([x.strip() for x in fields]) 

So wie es in der Frage ist, neu geschrieben werden könnte, Ihre Newline Variable ist kein str, sondern tatsächlich ein Tupel, deren einziges Element ist eine Zeichenfolge, die Sie wollen . Außerdem wird ‚\ n‘ am Ende Zugabe nicht notwendig sein, wenn Sie

print(newline, file=csv_file) 

verwenden Druck fügt ‚\ n‘ bis zum Ende alles, was es ohnehin druckt.

+0

danke .Sie sagen, 'für Zeile in infile: wenn line.strip() == "Start": Kopie = True elif line.strip() == "Ende": Kopie = False elif Kopieren: outfile.write (line) ' –

+0

Nicht elif, im letzten Fall sollte es sein, wenn. – Synedraacus

Verwandte Themen