Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2139827
  • 博文数量: 103
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1819
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。

文章分类
文章存档

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: Python/Ruby

2014-03-16 19:55:57

第一步导出聊天记录(此聊天记录只能导出本机的,不是服务器上的哦~~)

点击(此处)折叠或打开

  1. INPUT_FILE = "qq_chat_history.txt"

  2. HEADER_START = b"2013"
  3. (START_QQ, LINE_END_QQ) = (b"(", b")\r\n")
  4. (START_EMAIL, LINE_END_EMAIL) = (b"<", b">\r\n")

  5. with open(INPUT_FILE, "rb") as f:
  6.   records = {}
  7.   for line in f:
  8.     if not line.startswith(HEADER_START):
  9.       continue
  10.     if line.endswith(LINE_END_QQ):
  11.       qq_start = line.rfind(START_QQ)
  12.       if qq_start == -1:
  13.         continue
  14.       qq = line[qq_start+1 : -len(LINE_END_QQ)]
  15.       if not qq.isdigit():
  16.         continue
  17.       records[qq] = records.get(qq, 0) + 1
  18.     elif line.endswith(LINE_END_EMAIL):
  19.       email_start = line.rfind(START_EMAIL)
  20.       if email_start == -1:
  21.         continue
  22.       email = line[email_start+1 : -len(LINE_END_EMAIL)]
  23.       if email.count(b"@") != 1:
  24.         continue
  25.       records[email] = records.get(email, 0) + 1
  26.   for (k, v) in sorted(records.items(), key=lambda item: item[1]):
  27.     print("{0} => {1}".format(k.decode(), v))

阅读(3052) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~