新员工入职,如何将新的通讯录导入到员工手机,一个个导入太麻烦。vcf格式的文件可以自动导入,下面通过代码将txt文件的格式转为vcf文件格式。
txt文件格式:
张三 13636508384
李四 12784378759
vcf 文件格式:
BEGIN:VCARD
FN:张三
TEL;type=CELL;type=VOICE;type=pref:13636508384
END:VCARD
BEGIN:VCARD
FN:李四
TEL;type=CELL;type=VOICE;type=pref:12784378759
END:VCARD
可以看到vcf格式的文件很有规则性,每个用户及手机号一个单元。(注:vcf文件可以导入的不仅仅是手机号可以是公司、部门岗位等多种信息,在此只是导入了手机号,如果想导入其它信息可以自己配置vcf文件),下面是转换代码:
def txt_to_vcf(src_file):
"""
该函数将txt文件保存成vcf文件
:param src_file: 原始txt文件
:return:
"""
if os.path.exists(src_file):
# 读取txt文件
with open(src_file, "r", encoding="utf-8") as fs:
name_tel_list = fs.readlines()
"用户名和手机号tab隔开"
name_list, tel_list = [x.split("\t")[0] for x in name_tel_list],
[x.split("\t")[1] for x in name_tel_list]
# 创建vcf文件并写入数据(当前目录创建)
dstFile = src_file.split(".")[0] + ".vcf"
with open(dstFile, "w", encoding="utf-8") as fd:
for i in range(len(name_list)):
fd.write("BEGIN:VCARD\n")
fd.write("FN:" + name_list[i] + "\n")
fd.write("TEL;type=CELL;type=VOICE;type=pref:" + tel_list[i])
if i == len(name_list) - 1: fd.write("\n")
fd.write("END:VCARD" + "\n")
else:
print("输入txt文件路径报错...")