Skip to content
Advertisement

Manipulating files using Python

My old friend and I have been trying to save our chat histories recently for the nostalgia and the memories. Google chat history saves in a latest-oldest order. I’d like to make it to oldest-latest as well as change the pattern of the text. Any idea how I can implement this in Python?
For reference this is the Hangouts file.

From 1597166228247121622@xxx Sat Dec 30 18:33:39 +0000 2017 
X-GM-THRID: 1597166193327506679 
X-Gmail-Labels: chat 
From: Nash  MIME-Version: 1.0 
Content-Type: text/plain

I understand, don't worry

From 1597166202534663022@xxx Sat Dec 30 18:33:06 +0000 2017 
X-GM-THRID: 1597166193327506679 
X-Gmail-Labels: Chat 
From: Nash MIME-Version: 1.0 
Content-Type: text/plain

Have a safe trip

From 1588224320874515054@xxx Sat Dec 30 15:45:43 +0000 2017 
X-GM-THRID: 1588205400363537982 
X-Gmail-Labels: Chat 
From: Sash  MIME-Version: 1.0 
Content-Type: text/plain

I FEEL YA

From 1588224307132362082@xxx Sat Dec 30 15:45:30 +0000 2017 
X-GM-THRID: 1588205400363537982 
X-Gmail-Labels: Chat 
From: Sash  MIME-Version: 1.0 
Content-Type: text/plain

HOW IN THE WORLD ARE ALL OF YOU SHARING THE SAME HOTEL ROOM ??

And this is what I want it to look like.

[25/04/2018, 3:11:11 PM] Sash: pigeons ! 
[25/04/2018, 3:11:24 PM] Nash: pls no 
[25/04/2018, 3:11:55 PM] Nash: dont need em gutur guturs 
[25/04/2018, 3:13:13 PM] Sash: turn it up beetches

Advertisement

Answer

You can use modules re and datetime.

Example for your text:

import re
import datetime

text = text.split('nn')

datetime_pattern = 'w{3} w{3} d{2} d{2}:d{2}:d{2} .d{4} d{4}'
name_pattern = 'From:sw*s+MIME-Version:'

for i in range(0, len(text), 2):
    date = datetime.datetime.strptime(re.search(datetime_pattern, text[i]).group(), '%a %b %d %H:%M:%S %z %Y')
    name = re.search(name_pattern, text[i]).group()[6:-14].strip()
    message = text[i + 1].strip()
    print('[{0}] {1}: {2}'.format(date.strftime('%d/%m/%Y, %I:%M:%S %p'), name, message))

The result:

[30/12/2017, 06:33:39 PM] Nash: I understand, don't worry
[30/12/2017, 06:33:06 PM] Nash: Have a safe trip
[30/12/2017, 03:45:43 PM] Sash: I FEEL YA
[30/12/2017, 03:45:30 PM] Sash: HOW IN THE WORLD ARE ALL OF YOU SHARING THE SAME HOTEL ROOM ??
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement