Einzelne Spalten in einer CSV bearbeiten (Python)
Guten Morgen,
und zwar habe ich folgende Frage. Ich habe hier eine CSV die folgendermaßen aufgebaut ist:
In etwa so ist sie aufgebaut nur mit etwas mehr Einträgen.
Meine Problem was ich jetzt allerdings habe ist, dass ich gerne in der Spalte "Gruppen" nur jeweils die Einträge mit "CN" also die Gruppennamen hätte. Ich habe jedoch leider keinen Weg gefunden innerhalb einer Spalte die CSV zu bearbeiten. Klar ich kann jeweils die Namen oder die gesamte spalte "Gruppen" bearbeiten ich möchte aber in der Spalte Gruppen eben nur die einzelnen Einträge rausfiltern. Gibt es vielleicht eine Möglichkeit jeweils das was mit CN beginnt auszulesen?
Das ist der Code den ich soweit erstmal benutz habe um die CSV überhaupt erstmal einzulesen:
und zwar habe ich folgende Frage. Ich habe hier eine CSV die folgendermaßen aufgebaut ist:
1 Name,"Gruppen"
2 Benutzername,"CN=Gruppenname,OU=beispiel,DC=beispiel,DC=beispiel CN=Gruppenname,OU=...
3 Benutzername,"CN=Gruppenname,OU=beispiel,DC=beispiel,DC=beispiel CN=Gruppenname,OU=...
In etwa so ist sie aufgebaut nur mit etwas mehr Einträgen.
Meine Problem was ich jetzt allerdings habe ist, dass ich gerne in der Spalte "Gruppen" nur jeweils die Einträge mit "CN" also die Gruppennamen hätte. Ich habe jedoch leider keinen Weg gefunden innerhalb einer Spalte die CSV zu bearbeiten. Klar ich kann jeweils die Namen oder die gesamte spalte "Gruppen" bearbeiten ich möchte aber in der Spalte Gruppen eben nur die einzelnen Einträge rausfiltern. Gibt es vielleicht eine Möglichkeit jeweils das was mit CN beginnt auszulesen?
Das ist der Code den ich soweit erstmal benutz habe um die CSV überhaupt erstmal einzulesen:
import csv
with open('NameDerCsv.csv', newline='',encoding= 'utf-8') as file:
csvreader = csv.reader(file)
for row in csvreader:
print(row, "\n")
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5052112267
Url: https://administrator.de/contentid/5052112267
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
import csv, re
filepath = 'D:\\Pfad\\zur\\NameDerCsv.csv'
with open(filepath, newline='',encoding= 'utf-8') as file:
csvreader = csv.reader(file,delimiter=",")
next(csvreader)
for row in csvreader:
groups = ""
matches = re.findall('CN=(.*?)(?=,(OU|DC))',row[1],flags=re.I|re.M)
if matches != "":
groups = ','.join("%s" % match for match in matches)
print("Gruppen von User '" + row + "' : " + groups)
Gruß S.
Diese Fehlermeldung kam auch zuvor schon wenn ich versucht habe irgend ein Element ausgeben zu lassen.
Dann machst du was grundlegend falsch oder deine CSV ist anders formatiert als das was du hier postest. Klappt hier mit folgender Demo-CSV einwandfrei.Du kannst ja noch mit if prüfen ob ein Match gefunden wurde oder nicht (habe ich oben noch ergänzt).
Das ist meine Test-CSV
"Name","Gruppen"
"BenutzernameA","CN=GruppennameA,OU=beispiel,DC=beispiel,DC=beispiel CN=GruppennameB,OU=beispiel,DC=beispiel,DC=beispiel"
"BenutzernameB","CN=GruppennameC,OU=beispiel,DC=beispiel,DC=beispiel"
"BenutzernameC",""
Ergebnis in der Konsole.
Gruppen von User 'BenutzernameA' : GruppennameA,GruppennameB
Gruppen von User 'BenutzernameB' : GruppennameC
Gruppen von User 'BenutzernameC' :
Tschö und frohes Fest 🎄.