python實現將android手機通訊錄vcf文件轉化爲csv

python實現將android手機通訊錄vcf文件轉化爲csv
經常會遇到將手機通訊錄導出到電腦並轉化爲在電腦中可編輯的情況,在網上搜索了很久當前不外乎兩種處理方式。1.使用電腦的outlook的通訊簿功能,將手機導出的vcf文件導入到outlook的通訊錄中,然後再導出爲可編輯文件;2.是使用專用軟件直接打開vcf文件。很不幸兩種都不適合我,第一種導出到outlook後人名部分全是亂碼,第二種方式下載軟件後就沒打開成功(有可能下載的軟件與我的電腦不兼容)。

在網上也找了一些python的代碼自己轉化,一直沒有找到合適的代碼,我的vcf文件中的名稱部分是QP編碼格式。下面將我自己處理過程簡單描述一下。

手機:華爲MATE系列

python環境:python3.6.2

1.首先檢查導出的vcf文件用文本編輯打開,會發現是如下的一些格式,從“ENCODING=QUOTED-PRINTABLE”可以看出名稱部分是QP編碼,對該部分進行編碼纔是關鍵

BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=E5=86=AF=E8=94=B5=E5=B6=A5;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E5=B7=A5=20=E8=94=B6=20=E5=86=AF
TEL;CELL:1-351-886-xxxx
END:VCARD

2.導入import quopri,對QP部分進行解碼,截取Q P編 碼內容在此不贅述

對中文名稱部分進行解碼: quopri.decodestring(line[43:-3]).decode('utf-8')

對英文名稱部分進行解碼:quopri.decodestring(line[43:]).decode('utf-8')

3.另外還有一點vcf導出的電話有些是有空格,有些是有“-‘,所以最好用以下語句規範化一下

(line[9:]).replace("-","").replace(" ","") + ",";

OK,到此基本上已經大功告成,我是寫個循環,將cvf文件所有名片都循環處理一遍然後導入到一個csv文件中。

以後可以定期將手機通訊錄導到電腦了。
原文地址https://www.cnblogs.com/Jay-smalldata/p/10590185.html

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