<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/index.php?action=history&amp;feed=atom&amp;title=I719_Fundamentals_of_Python%2Flecture5v2</id>
	<title>I719 Fundamentals of Python/lecture5v2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/index.php?action=history&amp;feed=atom&amp;title=I719_Fundamentals_of_Python%2Flecture5v2"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I719_Fundamentals_of_Python/lecture5v2&amp;action=history"/>
	<updated>2026-06-16T00:46:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I719_Fundamentals_of_Python/lecture5v2&amp;diff=120953&amp;oldid=prev</id>
		<title>Eroman: Created page with &quot;= Lecture 5 =  Working with real data.&lt;br /&gt; Datetime, CSV files  == Datetime ==  &lt;source lang=&quot;python&quot;&gt;import datetime as dt  my_datetime = dt.datetime.utcnow()  # get the cu...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I719_Fundamentals_of_Python/lecture5v2&amp;diff=120953&amp;oldid=prev"/>
		<updated>2017-05-04T08:21:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Lecture 5 =  Working with real data.&amp;lt;br /&amp;gt; Datetime, CSV files  == Datetime ==  &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;import datetime as dt  my_datetime = dt.datetime.utcnow()  # get the cu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Lecture 5 =&lt;br /&gt;
&lt;br /&gt;
Working with real data.&amp;lt;br /&amp;gt;&lt;br /&gt;
Datetime, CSV files&lt;br /&gt;
&lt;br /&gt;
== Datetime ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;import datetime as dt&lt;br /&gt;
&lt;br /&gt;
my_datetime = dt.datetime.utcnow()  # get the current date and time (without timezone) as a datetime object&lt;br /&gt;
&lt;br /&gt;
one_day = dt.timedelta(days=1)  # create a duration of 1 day&lt;br /&gt;
&lt;br /&gt;
tomorrow = my_datetime + one_day&lt;br /&gt;
&lt;br /&gt;
yesterday = my_datetime - one_day&lt;br /&gt;
&lt;br /&gt;
tomorrow &amp;gt; yesterday  # True&lt;br /&gt;
&lt;br /&gt;
current_year = my_datetime.year&lt;br /&gt;
&lt;br /&gt;
first_day_of_year = dt.datetime(year=current_year, month=1, day=1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Task 1 ==&lt;br /&gt;
&lt;br /&gt;
Display the current date like&amp;lt;br /&amp;gt;&lt;br /&gt;
“2017-05-04”&lt;br /&gt;
&lt;br /&gt;
Calculate How many days since Jan 1.&lt;br /&gt;
&lt;br /&gt;
Optional, requires using timezone:&amp;lt;br /&amp;gt;&lt;br /&gt;
How many hours are left until midnight today?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;import datetime as dt&lt;br /&gt;
&lt;br /&gt;
print(dt.datetime.utcnow().strftime(&amp;quot;%Y-%m-%d&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
today = dt.date.today()&lt;br /&gt;
&lt;br /&gt;
first_of_the_year = dt.date(year=2017, month=1, day=1)&lt;br /&gt;
&lt;br /&gt;
print(today - first_of_the_year)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
now = dt.datetime.now()&lt;br /&gt;
midnight = dt.datetime(year=now.year, month=now.month, day=(now.day + 1))&lt;br /&gt;
print(midnight - now)&amp;lt;/source&amp;gt;&lt;br /&gt;
== CSV files ==&lt;br /&gt;
&lt;br /&gt;
CSV files are a portable and common way of using tabular data. They are easily used in python.&lt;br /&gt;
&lt;br /&gt;
== Example: Printing every row of a csv file ==&lt;br /&gt;
&lt;br /&gt;
Using a hardcoded path to &amp;lt;code&amp;gt;~/sheet1.csv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Uses a hardcoded path to the file. used when you cannot use the command line to run python. For example if you run the script in an IDE&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import csv&lt;br /&gt;
from os.path import expanduser, join&lt;br /&gt;
&lt;br /&gt;
home = expanduser(&amp;quot;~&amp;quot;)&lt;br /&gt;
path = join(home, &amp;#039;sheet1.csv&amp;#039;)&lt;br /&gt;
csv_file = open(path)&lt;br /&gt;
&lt;br /&gt;
reader = csv.reader(csv_file)&lt;br /&gt;
for row in reader:&lt;br /&gt;
    print(line)&lt;br /&gt;
&lt;br /&gt;
csv_file.close()&amp;lt;/source&amp;gt;&lt;br /&gt;
Using the argparse library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Open a file using argparse.&lt;br /&gt;
Work when ran from command line&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import argparse&lt;br /&gt;
import csv&lt;br /&gt;
&lt;br /&gt;
parser = argparse.ArgumentParser()&lt;br /&gt;
parser.add_argument(&amp;#039;file&amp;#039;)&lt;br /&gt;
args = parser.parse_args()&lt;br /&gt;
&lt;br /&gt;
csv_file = open(args.file)&lt;br /&gt;
&lt;br /&gt;
reader = csv.reader(csv_file)&lt;br /&gt;
for row in reader:&lt;br /&gt;
    print(row)&lt;br /&gt;
&lt;br /&gt;
csv_file.close()&amp;lt;/source&amp;gt;&lt;br /&gt;
== Task 2 ==&lt;br /&gt;
&lt;br /&gt;
What was the average price of bitcoin in April?&lt;br /&gt;
&lt;br /&gt;
CSV of historical price data here:&amp;lt;br /&amp;gt;&lt;br /&gt;
https://blockchain.info/charts/market-price?timespan=1year&lt;br /&gt;
&lt;br /&gt;
=== Hints ===&lt;br /&gt;
&lt;br /&gt;
convert timestamps to datetime object&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;datetime.datetime.strptime(&amp;amp;quot;2016-05-11 00:00:00&amp;amp;quot;, &amp;amp;quot;%Y-%m-%d 00:00:00&amp;amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Example solution ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Open a file using argparse.&lt;br /&gt;
Work when ran from command line&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import datetime as dt&lt;br /&gt;
import argparse&lt;br /&gt;
import csv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIN_DATE = dt.datetime(year=2017, month=4, day=1)&lt;br /&gt;
MAX_DATE = dt.datetime(year=2017, month=5, day=1)&lt;br /&gt;
&lt;br /&gt;
parser = argparse.ArgumentParser()&lt;br /&gt;
parser.add_argument(&amp;#039;file&amp;#039;)&lt;br /&gt;
args = parser.parse_args()&lt;br /&gt;
csv_file = open(args.file)&lt;br /&gt;
reader = csv.reader(csv_file)&lt;br /&gt;
&lt;br /&gt;
prices_in_april = []&lt;br /&gt;
&lt;br /&gt;
for row in reader:&lt;br /&gt;
    raw_price = row[1]&lt;br /&gt;
    price = float(raw_price)&lt;br /&gt;
    raw_date = row[0]&lt;br /&gt;
    date = dt.datetime.strptime(raw_date, &amp;quot;%Y-%m-%d 00:00:00&amp;quot;)&lt;br /&gt;
    if date &amp;gt;= MIN_DATE and date &amp;lt; MAX_DATE:&lt;br /&gt;
        prices_in_april.append(price)&lt;br /&gt;
&lt;br /&gt;
csv_file.close()&lt;br /&gt;
&lt;br /&gt;
print(sum(prices_in_april) / len(prices_in_april))&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eroman</name></author>
	</entry>
</feed>