将CSV转换为LDIF以便导入到ldap中?

2024-04-23 15:12
文章标签 转换 csv ldap 导入到 ldif

本文主要是介绍将CSV转换为LDIF以便导入到ldap中?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

将CSV转换为LDIF以便导入到ldap中?

目标格式:

dn: uid=zhangsan,ou=users,dc=baimeidashu,dc=com
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
givenName: zhangsan
sn: 1
displayName:张三
uid: zhangsan
homeDirectory: /home/zhangsan
mail: zhangsan@baimeidashu.com
cn: zhangsan
uidNumber: 27721
memberOf: cn=ldap-jira-users-groups,ou=jira,dc=baimeidashu,dc=com

代码:

# 这是一个示例 Python 脚本。# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。
import pandas as pdimport randomdef generate_uid(length=5):# 生成一个指定长度的随机数,我们这里设置长度为5return random.randint(10000, 99999)def print_hi(name):# 在下面的代码行中使用断点来调试脚本。print(f'Hi, {name}')  # 按 Ctrl+F8 切换断点。path = 'file//3-测试数据.csv'path2 = 'file//1.ldif'with open(path2, 'w') as file:data = pd.read_csv(path,encoding='gbk')for index, row in data.iterrows():displayName  = row['姓名']givenName  = row['用户名']print (givenName)# 生成UIDuid = generate_uid()file.write("dn: "+'uid='+givenName+',ou=users,dc=baimeidashu,dc=com'+'\n')file.write("objectClass: "+'posixAccount'+'\n')file.write("objectClass: "+'top'+'\n')file.write("objectClass: "+'inetOrgPerson'+'\n')file.write("gidNumber:"+'0'+'\n')file.write("givenName: "+givenName+'\n')file.write("sn: "+'1'+'\n')file.write("displayName: "+displayName+'\n')file.write("uid: "+givenName+'\n')file.write("homeDirectory: /home/"+givenName+'\n')file.write("mail: "+givenName+'@baimeidashu.com'+'\n')file.write("cn: "+givenName+'\n')file.write("uidNumber: "+str(uid)+'\n')file.write("memberOf: "+'cn=ldap-jira-users-groups,ou=jira,dc=baimeidashu,dc=com'+'\n')file.write('-----------------------------\n')# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':print_hi('PyCharm')

代码地址: 

https://github.com/chaoren399/csv2ldif

这篇关于将CSV转换为LDIF以便导入到ldap中?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929141

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim