2017-08-08 2 views
0

Datei überspringen habe ich eine CSV-Datei, die wie folgt aussieht:Python Betrieb in dem ersten Zeile von

CCC;reserved;reserved;pIndex;wedgeWT;NA;NA;NA;NA;NA;xOffset;yOffset;zOffset 
0.10089,0,0,1,0,0,0,0,0,0,-1.8,-0.7,1999998 
0.1124,0,0,3,0,0,0,0,0,0,-1.2,1.8,-3.9 

ich die fileinput Methode verwenden eine Operation in der Datei zu tun, aber ich mag den Betrieb auf überspringen die erste (Kopf-) Zeile, obwohl sie immer noch dort ist. Ich habe versucht mit next(f) und f.isfirstline(), aber sie löschen die Kopfzeile. Ich möchte die Kopfzeile intakt halten, aber keine Operation ausführen.

with fileinput.input(inplace=True) as f: 
    #skip line 
    for line in f: 
    . 
    . 
+0

Können Sie die erwartete Ausgabe und was Sie tun in der 'for'-Schleife teilen (kein Problem, wenn es verkürzt wird, gerade genug, um zu sehen, was Sie im Grunde tun)? Bitte werfen Sie auch einen Blick auf [mcve]. Das beinhaltet einige Hinweise, um deine Frage tatsächlich zu beantworten. – MSeifert

Antwort

0

können Sie enumerate verwenden leicht den Überblick über die Zeilennummern zu halten:

for linenum, line in enumerate(f): 
    if linenum == 0: 
     # 'line' is the header line 
     continue 

    # 'line' is a data line 
    # ... 
+0

Ich habe versucht, 'enumerate', aber es löscht immer noch die Kopfzeile. [Hier] (https://github.com/AnanDvd/MPI-Pigino/blob/master/csv_edit_Mareike_yesHeader_linenum.py) ist mein Skript –

+0

Warum verwenden Sie 'inplace = True ', wenn Sie nicht wissen, dass Sie schreiben müssen Ausgabe zurück in die Datei? –

0

Sie iter verwenden können, und überspringen sie mit next:

with fileinput.input(inplace=True) as f: 
    iterF = iter(f) 
    print next(iterF)#skipping computation but printing data 
    for line in iterF: 
     #... 

diese Weise werden Sie nur bekommen der Overhead des einmaligen Erzeugens des Iterators, aber nicht das Erstellen der Indizes oder das Berechnen eines if in jeder Iterationsschleife wie in @Jonatho nReinhart Lösung (die auch gültig ist).

+0

Ich habe versucht, 'iter' und' next' zu verwenden, aber es löscht immer noch die Kopfzeile. [Hier] (https://github.com/AnanDvd/MPI-Pigino/blob/master/csv_edit_Mareike_yesHeader.py) ist mein Skript –

+0

@AnandDwivedi, was willst du mit den Infos in der Kopfzeile machen, ausdrucken? – Netwave

Verwandte Themen