【通訊錄自動導入】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文件路徑報錯...")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章