在我看来,这实际上像是一个LDIF文件。python-ldap库有一个纯Python LDIF处理库,如果您的文件具有LDIF中可能存在的一些讨厌的问题,例如Base64编码值、条目折叠等,则可以提供帮助
你可以这样使用它:import csv
import ldif
class ParseRecords(ldif.LDIFParser):
def __init__(self, csv_writer):
self.csv_writer = csv_writer
def handle(self, dn, entry):
self.csv_writer.writerow([entry['LoginId'], entry['mail']])
with open('/path/to/large_file') as input, with open('output_file', 'wb') as output:
csv_writer = csv.writer(output)
csv_writer.writerow(['LoginId', 'Mail'])
ParseRecords(input, csv_writer).parse()
编辑
因此,要使用python-ldap库从一个活动的LDAP目录中提取,您需要执行如下操作:
^{2}$
请注意,在上面的示例中,我完全跳过了提供过滤器,您可能希望在生产中使用它。LDAP中的过滤器类似于SQL语句中的WHERE子句;它限制返回的对象。Microsoft actually has a good guide on LDAP filters。LDAP过滤器的规范引用是RFC 4515。在
类似地,如果即使在应用了适当的过滤器之后仍有可能有几千个条目,那么您可能需要研究LDAP paging control,尽管使用它会再次使示例更加复杂。希望这已经足够让你开始了,但是如果有任何事情发生,请随时提出或提出一个新的问题。在
祝你好运。在