python读写txt——实现qq记录格式优化

1)问题及需求:

qq历史记录导出后,聊天记录间缺少分隔,同时因工作需要,我对每条聊天记录进行了编号,且使用“******”区分:

2)主要涉及了:

1.对txt的读写,2.使用正则表达式匹配出每条老天记录的开始

3)遇到的问题:

读写txt文件时,中文内容的编码。

4)以上问题解决方法:

文件开始部分添加两行utf-8,“# -*- coding: utf-8 -*-”必须写在首行才可起效

5)优化:

在default setting中可以设置Editor-->File and Code Templates-->Python Script,写入:

# -*- coding: utf-8 -*-

这样每次新建Python文件的时候,文件开头都会自动写上这一行


6)代码如下:

# -*- coding: utf-8 -*-
coding='UTF-8'
import re

def rr(filename):
    #找到有HH:mm:ss格式时间的行(qq中每条信息前都有发言人和时间)对此处修改可寻找特殊的发言人信息
    pattern = re.compile('.*? \d{1,2}:\d{1,2}:\d{1,2}',re.S)
    fr = open(filename,'r')
    #读取旧的聊天记录文件
    lines = fr.readlines()
    num = 1
    #新文件保存位置,名字与旧文件一致
    newFilename = 'C:/Users/Administrator/Desktop/' + filename
    #创建文件
    fn = open(newFilename, 'w')
    fn.close()
    for line in lines:
        search = pattern.search(line)
        if search:
            #对找到的发言人所在一行内容前加星号和编号,换号符
            newLine ='\n'+'************'+ str(num) + ':' +line +'\n'
            num = num + 1
        else:
            #普通行只在内容后添加换行符
            newLine=line + '\n'
        #逐行写入聊天信息
        fw = open(newFilename, 'ab+')
        fw.writelines(newLine)
        fw.flush()
        fw.close()
    fr.close()

#旧文件名。默认位置和该py文件在一个文件夹下
filename =u'qq聊天记录1.txt'
rr(filename)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值