python大文本文件处理软件_在python中处理大型文本文件

博客介绍了使用Python处理LDIF文件的方法,借助python - ldap库的纯Python LDIF处理库可应对文件中的陷阱。还给出从实时LDAP目录中提取数据的示例代码,同时提到LDAP过滤器和分页控制等相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这对我来说实际上看起来像一个

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()

编辑

因此,要从实时LDAP目录中提取,使用python-ldap库,您可能希望执行以下操作:

import csv

import ldap

con = ldap.initialize('ldap://server.fqdn.system.edu')

# if you're LDAP directory requires authentication

# con.bind_s(username, password)

try:

with open('output_file', 'wb') as output:

csv_writer = csv.writer(output)

csv_writer.writerow(['LoginId', 'Mail'])

for dn, attrs in con.search_s('ou=Students,o=system.edu,o=system', ldap.SCOPE_SUBTREE, attrlist = ['LoginId','mail']:

csv_writer.writerow([attrs['LoginId'], attrs['mail']])

finally:

# even if you don't have credentials, it's usually good to unbind

con.unbind_s()

请注意,在上面的示例中,我完全跳过提供过滤器,您可能希望在生产中执行此过滤器. LDAP中的过滤器类似于SQL语句中的WHERE子句;它限制返回的对象. Microsoft actually has a good guide on LDAP filters. LDAP过滤器的规范参考是RFC 4515.

类似地,如果在应用适当的过滤器之后可能存在数千个条目,您可能需要查看LDAP paging control,尽管使用它会再次使示例更复杂.希望这足以让你开始,但如果有任何问题,请随时提出或打开一个新问题.

祝好运.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值