ich bin völliger newbe in Sachen python und habe ein Problemchen.Für euch Profis bestimmt kein Problem:
Ich habe eine csv Datei mit dem inhalt:
cat mod.csv
Code: Alles auswählen
Externe Kontakte;domain.net;Martin Eller;mail;Martin.Eller@koeln.de
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import csv
from ldif import LDIFWriter
#INPUT_CODEC = 'latin-1'
csv_file = open('mod.csv', 'rb')
ldif_file = open('mod.ldif', 'wb')
reader = csv.reader(csv_file, delimiter=';')
writer = LDIFWriter(ldif_file)
for row in reader:
# row = [data.decode(INPUT_CODEC).encode('UTF-8') for data in row]
ou, o, cn, xfield, xcontent = row
writer.unparse('cn=%s,ou=%s,o=%s' % (cn, ou, o),
{
'replace': [xfield],
'mail': [xcontent]
})
csv_file.close()
ldif_file.close()
$ cat mod.ldif
Jedoch müßte natürlich das "replace" in der Zeile vor "mail:" stehen.
Das Umkehren von Zeilen im Code brachte nichts!
Ich verstehe das writer.unparse nich - leider fand ich auch keine Doku. Vielleicht kann mir einer kurz erklären was da passiert. Was ist open wb, rb...?
Hintergrund:
Die Felder können auch Sonderzeichen enthalten. Deswegen muß es nach base64 gewandelt werden.
Wie gesagt ich habe von Python keine Ahung und das script ist nicht von mir.
Vielen Dank für die Hilfe!
Martin