Hallo,
ich habe ein csv date
x,y,z
1,2,3
3,4,5
und möchte nun die z Spalte kopieren und anhängen
x,y,z,z
1,2,3,3
3,4,5,5
Hab aber leider keine Ahung wie ich das anstellen soll.
Hier mein bisheriger Code der mir die letzte Spalte ausgibt.
Wie hänge ich diese nun an die csv date an
.....
reader_csv = csv.reader(open(input, 'rb'))
for row in reader_csv:
print row[2]
.......
Kann mir da jemand weiterhelfen??
Danke
csv datei spalte anhängen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hm ... also ich würde es so versuchen:
Das Durchgehen ist irgendwie unschön ... evtl. kann man das optimieren. Aber so sollte es zumindest funzen
Code: Alles auswählen
tmp=[]
for row in reader_csv:
tmp.append(row[2])
neu = zip(reader_csv, tmp)
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
mal richtig umstänglich aber es läuft und berücksichtigt auch das \n nach dem letzten zeichen in jeder zeil
Code: Alles auswählen
file = open('test.csv', 'r')
ziel = open('test_neu.csv', 'w')
for line in file:
line_split = line.split(',')
line_split.append(str(line_split[2].split('\n')[0]))
line_split[2] = line_split[3]
a = 0
while a < len(line_split):
ziel.write(line_split[a] + ',')
a += 1
ziel.write('\n')
ziel.close()
file.close()
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Spirit!The Spirit hat geschrieben:Code: Alles auswählen
file = open('test.csv', 'r') ... line_split = line.split(',')
Zuerst überschreibst du ``file`` und dann willst du dem OP auch noch ``split`` anbieten?
Split berücksichtigt absolut keine Sonderfälle. Es kommt nicht mal mit einem Beistrich in den Daten klar. Das csv-Modul ist auf jeden Fall die bessere Wahl.
mfg
Gerold
PS: In etwa so:
Code: Alles auswählen
import csv
inputfile = file("input.csv", "rb")
outputfile = file("output.csv", "wb")
csv_out = csv.writer(outputfile)
for row in csv.reader(inputfile):
if row:
row.append(row[-1])
csv_out.writerow(row)
outputfile.close()
inputfile.close()
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
offtopic:
danke gerold, wieder was dazugelerent. werde mal sehen, ob ich das csv modul demnächst mal wo gleich einsetzten kann
danke gerold, wieder was dazugelerent. werde mal sehen, ob ich das csv modul demnächst mal wo gleich einsetzten kann