Skip to content

Instantly share code, notes, and snippets.

@dgellow
Created June 6, 2015 00:15
Show Gist options
  • Save dgellow/8fbde8583b70560863be to your computer and use it in GitHub Desktop.
Save dgellow/8fbde8583b70560863be to your computer and use it in GitHub Desktop.
from os import path
import re
import pdb
import sys
filename = path.join(
path.dirname(__file__), 'semaine_depenses.txt'
)
with open(filename, 'r') as file:
data = file.read()
# Split file data by week
weeks = re.compile('"\s*"').split(data)
# Remove double quotes
weeks = [week.replace('"', '') for week in weeks]
csv_file = open('data.csv', 'w')
for week in weeks:
try:
full_week_number = re.compile('^.*\n').findall(week)[0]
week_number = re.search('\d+', week).group(0)
week = week.replace(full_week_number, '')
except:
pdb.set_trace()
for day in week.split('\n\n'):
splitted_day = day.split('\n')
date = splitted_day[0]
only_items = [item for item in splitted_day if ':' in item]
for item in only_items:
try:
item_parts_arr = re.findall('(.+):\s+(\S+)\s+(.+)?$',
item)
item_parts = item_parts_arr[0] if item_parts_arr else []
location = item_parts[0] if item_parts else ''
price = item_parts[1] if len(item_parts) > 1 else ''
thing = item_parts[2] if len(item_parts) > 2 else ''
except:
pdb.set_trace()
csv_data = ';'.join([
week_number,
date,
location,
price,
thing
])
csv_file.write(csv_data + '\n')
csv_file.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment