生成CVS格式通讯录的Python实现

By | February 19, 2018

通讯录原格式

张三 1778****931
王XX 1812****851
谢XX 1822****555
李XX 1522****563
叶XX 1501****750
陈XX 1506****052
黎XX 1902****506
谢XX 1382****766
许XX 1551****135
姚XX 1811****523

想要的效果

代码实现

#!/usr/bin/python
# -*- coding: utf-8 -*-
import csv
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

with open('contacts.csv', 'w') as csvfile:
    fieldnames = [u'姓名', u'手机号码']
    csv_writer = csv.DictWriter(csvfile, fieldnames = fieldnames)
    csv_writer.writeheader()
    ## 原通讯录文件名是 `contact-2.txt`
    with open('./contacts-2.txt', 'r') as f:
        for line in f.readlines():
            line = unicode(str(line.strip()))
            unit = line.split(' ')
            csv_writer.writerow({u'姓名': unit[0], u'手机号码': unit[1]})

csv.DictWriter 的用法请阅读官方文档:csv — CSV File Reading and Writing

用富文本编辑器打开

类似于微软 Excel 那样的表格所见即所得富文本编辑器,这里以 LibreOffice 为例:

如果提示需要提供分隔符,那就选择逗号。

  • 如果有乱码,请自行解决
  • 为了方便所有人,可以另存为微软 xls 等格式的文件。
  • 可以扩展一下原来的代码,达到添加地址、QQ、微信、备注等信息的需求目的。

Created On: 2018-02-19

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,也欢迎指正,一起学习,共同进步。如果本文对您有帮助,而且让您觉得值得为内容付费,那么就请赞助(打赏)一下本人,这不强制。打赏支持微信支付,方法是使劲地戳一下下方的“打赏”按钮,然后得到微信收款的二维码,再用微信支付扫一下,就像买菜那样。祝好!