用Python把QQ聊天记录文件转成WORD并排版

和女票在一起五年了,保留了几年的QQ聊天记录,偶然翻到,感觉很温暖,就想把这些文字做成一本属于我们的书,应该会很有纪念意义。然而qq备份的聊天记录是txt格式,网上找了半天也没有合适的排版工具,上百页的文字一点一点粘贴到word里也不现实,就想到了用万能的python,把txt里的文字写到word里,并进行了简单的排版。书已经做出来了,效果还不错,如果有正在发愁送什么礼物的男生,可以参考下,哈哈~


首先txt中的文字格式是这样的:(文字是我随便写的)


我想把文字写成word,并排版成类似于qq聊天界面一样的格式,让人读的时候就像在和当年的对方聊天一样,很有代入感。如下图所示:



要做成这种,只需要两步:

1 把txt中的文字写入word

2 在word中进行排版

用python处理word,最好用python-docx库:

http://python-docx.readthedocs.io/en/latest/user/install.html

关于如何处理word,库的文档中写的很清楚,可以满足基本的word排版,我的排版比较简单,已经完全够用了。下面是我的处理方法。


首先是把txt中的文字写入word,这里我建两个文件夹,分别存放所有的txt文件和word文件:


把txt写入word的代码如下。由于自动导出的聊天记录里总有一些乱七八糟的文字,这里用到了正则表达式,把它们自动删除。

def chat():

    # 正则表达式
    pattern3 = re.compile(r'|\[图片\]')
    pattern4 = re.compile(r'\(来自手机QQ2012 \[Android\]:语音对讲,高效沟通!\)|\(来自手机QQ2012 \[Android\] \)')

    # 文件目录
    path_txt = r'G:\TEST\python_text\聊天界面\txt\\'
    path_word = r'G:\TEST\python_text\聊天界面\word\\'
    pathDir = os.listdir(path_txt)

    for childfile in pathDir:
        print(childfile)
        # 打开文件,按行读取
        f = codecs.open(path_txt + childfile, 'rb', 'utf-8', )
        newline1 = f.readlines()
        f.close()

        # 去掉换行符和空行,存入s
        s = []
        for line in newline1:
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值