2016-10-05 4 views
1

Ich möchte ein Python-Skript erstellen, das über einen Zähler verfügt, der den aktuellen Wert einer bestimmten Zelle in einer CSV-Datei ersetzt.Wie ersetzt man einen Wert in einer bestimmten Zelle einer CSV-Datei?

Mein Code ist:

with open(ctlLst[-1], 'rb') as csvfile: 
    csvReader = csv.reader(csvfile) 
    csvReader.next() 
    for row in csvReader: 
     if row[6]>counter: 
     newCTLcount=int(row[6])-counter 
     #need to replace cell row[6] 

Die Datei sieht wie folgt aus:

InterfaceCode InterfaceSeqID OperatorCode CreationDateTime MintransactionDateTime MaxtransactionDateTime NoOfRows ControlFileName DataFileName 
201 1170 30 20161005 04:30:27 20161004 06:55:56 20161005 03:08:37 8696 CTL_TripEventAndAlert_30_20161004.CSV TripEventAndAlert_30_20161004.CSV 

In diesem Beispiel muss ich den Wert von 8696 (auf Zeile 2 Zelle 6) mit einem neuen Wert ersetzen (newCTLcount).

+0

Was ist dein Endziel? Um die geänderte Tabelle im Speicher oder auf der Festplatte zu haben? – tuergeist

+0

auf CD ... das ist nur ein Teil Code ... für genau das, was ich brauche –

+0

Sie sollten in Betracht ziehen, die Daten zu dem Zeitpunkt zu schreiben, als Sie es gelesen haben. – tuergeist

Antwort

0

Wahrscheinlich ist es eine gute Idee zu schreiben, während das Lesen/Parsen Speicher 2

with open('out.csv', 'wb') as outfile: 
    with open(ctlLst[-1], 'rb') as csvfile: 
    csvReader = csv.reader(csvfile) 
    csvWriter = csv.writer(outfile) 
    csvReader.next() 
    for row in csvReader: 
     row[6] = int(row[6]) # assumed as int 
     if row[6] > counter: 
     row[6] -= counter 
     outfile.writerow(row) 

Für Python speichern siehe https://docs.python.org/2/library/csv.html

0

wurde es ...

rowData=[] 
with open(ctlLst[-1], 'rb') as csvfile: 
csvReader = csv.reader(csvfile) 
    for row in csvReader: 
     rowData.append(row) 

rowData[1][6]=int(rowData[1][6])-counter 
print ("new Row data count is " + str(rowData[1][6])) 

danken der

+0

Wie ändert sich das auf der Festplatte? –

+0

ich denke, ich habe Ihre Bedeutung für Disc falsch verstanden ... dieser Code speicherte die CSV-Datei nach Änderungen auf der Disc ... das, was ich meinte, Sie? –

+0

Der obige Code öffnet eine Datei im Lesemodus und ändert das, was sie eingelesen hat. Es wird nichts geschrieben/gespeichert. –

Verwandte Themen