2017-06-09 2 views
-1
def x(filename, saved): 
    with open(filename, 'r') as fin, \ 
     open(saved, 'w') as fout: 
     header = next(fin, '\n') 
     for line in fin: 
      line = line.rstrip('\n') 
      fields = line.split(',') 
      fields_new = header + line 
      if float(fields[1]) <= float(fields[2]): 
       print(fields_new, file=fout) 

Das Problem Datei ist, wenn ich drucke ich die Header jedes Mal wiederholt, etwa so:Print Header nur einmal

header 
line 
header 
line 
etc.. 

statt

header 
line 
line 
line 

Wie kann ich das machen Kopfzeile erscheint nur einmal?

+0

Anstatt "fields_new" zu drucken, "drucken" Felder innerhalb der Schleife. –

+1

Nun, 'Header' zu' fields_new' nicht in jeder Schleife hinzufügen - drucken Sie es nur einmal, bevor Sie beginnen, die restlichen Zeilen durchzulaufen. – zwer

Antwort

0
def x(filename, saved): 
    with open(filename, 'r') as fin, \ 
     open(saved, 'w') as fout: 
     header = next(fin, '\n') 
     print(header, file=fout) 
     for line in fin: 
      line = line.rstrip('\n') 
      fields = line.split(',') 
      if float(fields[1]) <= float(fields[2]): 
       print(line, file=fout)