【通讯录自动导入】txt格式转vcf格式

    新员工入职,如何将新的通讯录导入到员工手机,一个个导入太麻烦。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文件路径报错...")
发布了31 篇原创文章 · 获赞 35 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/bingjia103126/article/details/103782674