Il giorno mer 14 set 2022 alle ore 15:36 Marco Giusti < marco.giu...@posteo.de> ha scritto:
> > > #!/usr/bin/env python3 > > import sys > from ldif3 import LDIFParser > > ldif_path = sys.argv[1] > > with open(ldif_path, 'rb') as ldif_file: > parser = LDIFParser(ldif_file) > > for dn, entry in parser.parse(): > try: > print(dn, entry['cn']) > except ValueError: > continue > > > Ciao, grazie della risposta ma l'errore avviene nel momento in cui la variabile dn viene popolata, prima del try. Credo che non sia possibile gestire l'eccezione in questa fase :-(. Dovrebbe essere gestita dal modulo ldif3. Mentre scrivevo questo sono andata a spulciare la documentazione della libreria <https://ldif3.readthedocs.io/en/latest/> e fra i parametri ho trovato: "strict (boolean) – If set to False, recoverable parse errors will produce log warnings rather than exceptions." Ho modificato lo script come segue: --- #!/usr/bin/env python3 import sys from pprint import pprint from ldif3 import LDIFParser ldif_path = sys.argv[1] with open(ldif_path, 'rb') as ldif_file: parser = LDIFParser(ldif_file, *strict=False*) for dn, entry in parser.parse(): pprint(dn) pprint(entry) --- Ho eseguito lo script: --- ./test.py bad_sample.ldif 2> error.log 'cn=*Mario, Rossi*,mail=mario.ro...@domain.com' OrderedDict([('objectclass', ['top', 'person', 'organizationalPerson', 'inetOrgPerson', 'mozillaAbPersonAlpha']), ('givenName', ['Mario Rossi']), *('cn', ['Mario, Rossi']),* ('mail', ['mario.ro...@domain.com']), ('modifytimestamp', ['1632815299'])]) cat error.log No valid string-representation of distinguished name cn=Mario, Rossi,mail= mario.ro...@domain.com. --- In questo modo lo script non si blocca e ho comunque traccia dei contatti problematici da sistemare in sorgente!
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python