新員工入職,如何將新的通訊錄導入到員工手機,一個個導入太麻煩。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文件路徑報錯...")