Last active
January 27, 2016 23:53
-
-
Save raphaelschaad/72addce2a3fdafdf359d to your computer and use it in GitHub Desktop.
Renames CSV files of iMessages extracted with iExplorer from iTunes backup and prints start and end date of conversations.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
#coding=utf-8 | |
# | |
# imsg-cleaner.py | |
# | |
# Renames CSV files of iMessages extracted with iExplorer from iTunes backup and prints start and end date of conversations. | |
# | |
# Created by Raphael Schaad on 2013-12. | |
# This is free and unencumbered software released into the public domain. | |
# | |
# Usage: $ python imsg-cleaner.py <path/to/csv/directory> | |
# | |
import sys | |
from os import listdir | |
import os | |
import datetime | |
start_date = None | |
end_date = None | |
dir_path = sys.argv[1] | |
for filename in listdir(dir_path): | |
src_path = os.path.join(dir_path, filename) | |
# Remove double-spaces and space before file extension. | |
dst_filename = filename.replace(' ', ' ') | |
dst_filename = dst_filename.replace(' .csv', '.csv') | |
dst_path = os.path.join(dir_path, dst_filename) | |
if src_path != dst_path: | |
print('Renaming "' + filename + '" to "' + dst_filename + '"') | |
os.rename(src_path, dst_path) | |
# Find start and end date of conversations. Date example: Mar 1, 2012, 12:43:50 AM | |
file_handler = open(dst_path, 'r') | |
file_lines = file_handler.readlines() | |
for file_line in file_lines: | |
values = file_line.split('","') | |
for value in values: | |
try: | |
date_time = datetime.datetime.strptime(value, '%b %d, %Y, %I:%M:%S %p') | |
date = datetime.datetime.strftime(date_time, '%Y-%m-%d') | |
if start_date == None or date < start_date: | |
start_date = date | |
if end_date == None or date > end_date: | |
end_date = date | |
except: | |
continue | |
file_handler.close() | |
print ('start date: ' + start_date) | |
print ('end date: ' + end_date) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment