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