{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import requests as r\n", "import json\n", "import time\n", "import xlsxwriter" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Fahrtenbuch aus MOVES App" ] }, { "cell_type": "code", "collapsed": false, "input": [ "detail = 1 # the lower, the more precise the location is geoencoded\n", "fromdate = '20140201' # date in yyyyMMdd\n", "todate = '20140228' # date in yyyyMMdd" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "# Source: https://gist.github.com/bradmontgomery/5397472\n", "def getadress(latitude,longitude):\n", " # grab some lat/long coords from wherever. For this example,\n", " # I just opened a javascript console in the browser and ran:\n", " #\n", " # navigator.geolocation.getCurrentPosition(function(p) {\n", " # console.log(p);\n", " # })\n", " #\n", " #latitude = 35.1330343\n", " #longitude = -90.0625056\n", " \n", " # Did the geocoding request comes from a device with a\n", " # location sensor? Must be either true or false.\n", " sensor = 'true'\n", " \n", " # Hit Google's reverse geocoder directly\n", " # NOTE: I *think* their terms state that you're supposed to\n", " # use google maps if you use their api for anything.\n", " base = \"http://maps.googleapis.com/maps/api/geocode/json?\"\n", " params = \"latlng={lat},{lon}&sensor={sen}\".format(\n", " lat=latitude,\n", " lon=longitude,\n", " sen=sensor\n", " )\n", " url = \"{base}{params}\".format(base=base, params=params)\n", "\n", " response = r.get(url)\n", " \n", " if response.status_code==200:\n", " pass\n", " else:\n", " print('Error: \\'%s\\'' % response.json()['error'])\n", " \n", " return response.json()['results'][detail]['formatted_address']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "url = 'https://api.moves-app.com/api/1.1' # Moves API\n", "params= {'access_token': '********************', # your Access Token here\n", " 'trackPoints': 'false',\n", " 'from': fromdate,\n", " 'to': todate}\n", " #'pastDays': '10',\n", "timeline = r.get(url+'/user/storyline/daily', params=params)\n", "\n", "if timeline.status_code==200:\n", " print('Received Data from Moves API.')\n", "else:\n", " print('Error: \\'%s\\'' % timeline.json()['error'])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Received Data from Moves API.\n" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "begin = time.strptime(timeline.json()[0]['date'], '%Y%m%d')\n", "ende = time.strptime(timeline.json()[-1]['date'], '%Y%m%d')\n", "print('Zeitraum: %s - %s' % (time.strftime(\"%A, %d %b %Y\", begin), time.strftime(\"%A, %d %b %Y\", ende)))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Zeitraum: Saturday, 01 Feb 2014 - Friday, 28 Feb 2014\n" ] } ], "prompt_number": 23 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Create Excel File" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Create an new Excel file and add a worksheet.\n", "workbook = xlsxwriter.Workbook('Fahrtenbuch-%s.xlsx' % time.strftime(\"%Y\", begin))\n", "worksheet = workbook.add_worksheet(time.strftime(\"%b-%Y\", begin))\n", "# Add a bold format to use to highlight cells.\n", "bold = workbook.add_format({'bold': True})\n", "\n", "# Text with formatting.\n", "worksheet.write(0,0, 'Fahrtenbuch', bold)\n", "worksheet.write(2,0, 'Von:')\n", "worksheet.write(2,1, '%s' % time.strftime(\"%A, %d %b %Y\", begin))\n", "worksheet.write(3,0, 'Bis:')\n", "worksheet.write(3,1, '%s' % time.strftime(\"%A, %d %b %Y\", ende))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "0" ] } ], "prompt_number": 24 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Crawl the Data" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fahrtenbuchdata=[]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "for day in range(len(timeline.json())): # Tage durchgehen\n", " \n", " # Datum\n", " date = time.strptime(timeline.json()[day]['date'], '%Y%m%d')\n", " print('%s' % (time.strftime(\"%A, %d %b %Y\", date)))\n", " print(20*'=')\n", " \n", " fahrtenbuchdata.append('%s' % (time.strftime(\"%A, %d %b %Y\", date)))\n", " \n", " transport=False\n", " for i in range(len(timeline.json()[day]['segments'])): # Segmente durchgehen\n", " \n", " try: # Ort\n", " place = timeline.json()[day]['segments'][i]['place']\n", " lat = timeline.json()[day]['segments'][i]['place']['location']['lat']\n", " lon = timeline.json()[day]['segments'][i]['place']['location']['lon']\n", " location= getadress(lat, lon)\n", " if timeline.json()[day]['segments'][i]['place'].has_key('name'):\n", " name = timeline.json()[day]['segments'][i]['place']['name']\n", " \n", " if transport:\n", " #print('%s (%s)\\n' % (location, name))\n", " print('%s\\n' % (location))\n", " fahrtenbuchdata.append('%s' % (location))\n", " fahrtenbuchdata.append('')\n", " transport=False\n", " else:\n", " if transport:\n", " print('%s\\n' % (location))\n", " fahrtenbuchdata.append('%s' % (location))\n", " fahrtenbuchdata.append('')\n", " transport=False\n", " pass\n", " except: # an sonsten ist es eine Verbindung\n", " try:\n", " #print '.'\n", " for act in range(len(timeline.json()[day]['segments'][i]['activities'])):\n", "\n", " # nur Transport nutzen\n", " if timeline.json()[day]['segments'][i]['activities'][act]['activity']=='transport':\n", " starttime = time.strptime(timeline.json()[day]['segments'][i]['activities'][act]['startTime'], \"%Y%m%dT%H%M%S+%f\")\n", " distance= float(timeline.json()[day]['segments'][i]['activities'][act]['distance'])\n", " endtime = time.strptime(timeline.json()[day]['segments'][i]['activities'][act]['endTime'], \"%Y%m%dT%H%M%S+%f\")\n", " \n", " #print('%s (%s)' % (location, name))\n", " print('%s' % (location))\n", " fahrtenbuchdata.append('%s' % (location))\n", " route = '%.1fkm (%s - %s)' % (distance/1000.0, time.strftime(\"%H:%MUhr\", starttime), time.strftime(\"%H:%MUhr\", endtime))\n", " print(route)\n", " fahrtenbuchdata.append(route)\n", " \n", " transport=True\n", " else:\n", " pass\n", " #print '.'\n", " except: # oder was anderes\n", " pass\n", "\n", " print('\\n')\n", " fahrtenbuchdata.append('')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Saturday, 01 Feb 2014\n", "====================\n", "\u00c4u\u00dfere Neustadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.5km (03:45Uhr - 03:56Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.9km (10:34Uhr - 10:52Uhr)\n", "Plauen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "3.6km (11:20Uhr - 11:34Uhr)\n", "Seevorstadt West, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seevorstadt West, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.6km (14:33Uhr - 14:54Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "4.5km (19:07Uhr - 19:20Uhr)\n", "Altmarkt, 01067 Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Innere Altstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.7km (22:37Uhr - 22:48Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Sunday, 02 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "8.1km (09:48Uhr - 10:02Uhr)\n", "\u00c4u\u00dfere Neustadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\u00c4u\u00dfere Neustadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.7km (12:21Uhr - 12:38Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Monday, 03 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Tuesday, 04 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Wednesday, 05 Feb 2014\n", "====================\n", "Neugruna, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.7km (15:36Uhr - 16:00Uhr)\n", "Plauen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "0.6km (19:36Uhr - 19:38Uhr)\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.8km (19:39Uhr - 19:54Uhr)\n", "Gruna, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Gruna, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "1.2km (19:58Uhr - 20:01Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Thursday, 06 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "4.8km (16:01Uhr - 16:18Uhr)\n", "Seevorstadt West, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seevorstadt West, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.2km (17:31Uhr - 17:50Uhr)\n", "Mickten, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Mickten, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "11.4km (22:58Uhr - 23:19Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Friday, 07 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.3km (09:27Uhr - 09:42Uhr)\n", "S\u00fcdvorstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "S\u00fcdvorstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.5km (13:00Uhr - 13:12Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "0.6km (16:48Uhr - 16:49Uhr)\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "0.7km (16:50Uhr - 16:52Uhr)\n", "Neugruna, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Saturday, 08 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "112.2km (09:23Uhr - 10:34Uhr)\n", "Annahof, 03099 Kolkwitz, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Annahof, 03099 Kolkwitz, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.9km (10:44Uhr - 10:58Uhr)\n", "Gallinchen, Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Gallinchen, Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.9km (13:21Uhr - 13:34Uhr)\n", "03046 Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "03046 Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "114.1km (17:40Uhr - 19:04Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "1.6km (19:16Uhr - 19:26Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Sunday, 09 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.6km (09:45Uhr - 09:58Uhr)\n", "Kleinpestitz, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Kleinpestitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.2km (13:46Uhr - 13:52Uhr)\n", "Plauen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "8.3km (18:52Uhr - 19:08Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Monday, 10 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Tuesday, 11 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Wednesday, 12 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Thursday, 13 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Friday, 14 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.0km (08:05Uhr - 08:10Uhr)\n", "Seidnitz, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "8.8km (08:15Uhr - 08:37Uhr)\n", "S\u00fcdvorstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "S\u00fcdvorstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.3km (08:46Uhr - 09:03Uhr)\n", "01239 Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "01239 Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.2km (09:26Uhr - 09:52Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Saturday, 15 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.2km (09:47Uhr - 09:59Uhr)\n", "Innere Neustadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Innere Neustadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.1km (10:54Uhr - 11:08Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.9km (15:07Uhr - 15:22Uhr)\n", "Innere Neustadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Innere Neustadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.9km (16:42Uhr - 16:49Uhr)\n", "Johannstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Johannstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "4.1km (18:24Uhr - 18:34Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Sunday, 16 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "9.4km (15:19Uhr - 15:43Uhr)\n", "Wei\u00dfer Hirsch, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Wei\u00dfer Hirsch, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.7km (16:54Uhr - 17:10Uhr)\n", "01309 Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "01309 Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "3.4km (17:43Uhr - 17:49Uhr)\n", "Johannstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Johannstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "4.0km (17:59Uhr - 18:08Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Monday, 17 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Tuesday, 18 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Wednesday, 19 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Thursday, 20 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Friday, 21 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.2km (08:20Uhr - 08:26Uhr)\n", "Seidnitz, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "8.2km (08:33Uhr - 08:51Uhr)\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.2km (08:56Uhr - 09:03Uhr)\n", "Seevorstadt West, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Wilsdruffer Vorstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "6.7km (11:57Uhr - 12:16Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "1.9km (16:19Uhr - 16:23Uhr)\n", "Seidnitz, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "10.4km (16:32Uhr - 16:54Uhr)\n", "Plauen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "1.5km (18:24Uhr - 18:27Uhr)\n", "Plauen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Plauen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "7.6km (18:43Uhr - 18:57Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Saturday, 22 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "11.0km (10:27Uhr - 10:48Uhr)\n", "Radebeul, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Radebeul, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "50.8km (11:05Uhr - 12:57Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "2.2km (13:03Uhr - 13:09Uhr)\n", "Seidnitz, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "3.5km (13:18Uhr - 13:29Uhr)\n", "01239 Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "01239 Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.8km (13:49Uhr - 14:04Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Sunday, 23 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "16.9km (09:51Uhr - 10:17Uhr)\n", "Kesselsdorf, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Kesselsdorf, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "23.7km (10:29Uhr - 10:48Uhr)\n", "Kesselsdorf, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Kesselsdorf, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "149.5km (13:16Uhr - 14:35Uhr)\n", "03046 Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Monday, 24 Feb 2014\n", "====================\n", "03046 Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "10.6km (07:55Uhr - 08:24Uhr)\n", "03046 Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "03046 Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.1km (09:30Uhr - 09:44Uhr)\n", "Cottbus, Betriebshof Schmellwitz, Stra\u00dfenbahnbetriebshof Cottbus, 03044 Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Cottbus, Betriebshof Schmellwitz, Stra\u00dfenbahnbetriebshof Cottbus, 03044 Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "122.1km (11:02Uhr - 12:38Uhr)\n", "Argenauer Stra\u00dfe 18B, 12555 Berlin, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Argenauer Stra\u00dfe 18B, 12555 Berlin, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "128.1km (17:16Uhr - 18:31Uhr)\n", "03046 Cottbus, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "03046 Cottbus, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "149.3km (19:32Uhr - 20:53Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Tuesday, 25 Feb 2014\n", "====================\n", "Striesen, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.4km (19:33Uhr - 19:41Uhr)\n", "S\u00fcdvorstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "S\u00fcdvorstadt, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "5.2km (20:50Uhr - 20:58Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Wednesday, 26 Feb 2014\n", "====================\n", "Seidnitz, Dresden, Germany" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "1.6km (17:19Uhr - 17:32Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Striesen, Dresden, Germany\n", "5.9km (19:20Uhr - 19:33Uhr)\n", "S\u00fcdvorstadt, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "S\u00fcdvorstadt, Dresden, Germany\n", "6.3km (19:46Uhr - 20:01Uhr)\n", "Striesen, Dresden, Germany\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Thursday, 27 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Friday, 28 Feb 2014\n", "====================\n", "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 26 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Save to Excel File" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(len(fahrtenbuchdata)):\n", " worksheet.write(i+5, 0, fahrtenbuchdata[i])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "print('Erledigt. Nun beten und hoffen, dass das Finanzamt es akzeptiert.')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Erledigt. Nun beten und hoffen, dass das Finanzamt es akzeptiert.\n" ] } ], "prompt_number": 28 } ], "metadata": {} } ] }