neděle 3. února 2008

Jak se učím python

Python je programovací jazyk, který budu potřebovat k bakalářské práci (grafický dohled nad SNMP protokolem) a tak jsem se začal učit jeho základy. Hallo world! je nuda:

print "Hallo world!"

Zkouším něco záživnějšího: prohlížeč Garfieldovských stripů. Zatím umí jen stáhnout (z www.ucomics.com) a zobrazit aktuální strip, takže by to mohla být verze 0.0.1. Proto to zatím nebudu moc zveřejňovat, to až později... Využívá grafickou knihovnu PyGTK.
Program pracuje tak, že nejprve načte a uloží komiks do "garfield.gif" a teprve poté ho v jednoduchém okně zobrazí. Využil jsem toho, že strip (obrázek) je na serveru ucomics.com ukládán ve formátu http://images.ucomics.com/comics/ga/Y/gaymd.gif, kde Y je rok (např. 2008), y je zkrácený rok (08), m je měsíc (12) a d je den (02). Jednoduché...



#!/usr/bin/env python

# GarfViewer : version 0.0.1
# by Jacques Sapin [CZ]

import pygtk
pygtk.require('2.0')
import gtk
import urllib,sys,datetime

today = datetime.date.today()
# for today strip:
Y = today.strftime("%Y") # Year (2008)
y = today.strftime("%y") # year (08)
m = today.strftime("%m") # month (12)
d = today.strftime("%d") # day (02)

print " > day: " + Y + "-" + m + "-" + d

garf = "garfield.gif"

print " > downloading comic strip from http://images.ucomics.com"
source = "http://images.ucomics.com/comics/ga/"+ Y + "/ga"+ y+m+d +".gif"
strip = urllib.urlopen(source)
g = strip.read()
file = open(garf, "w")
file.write(g)
file.close()
print " > strip saved in ./" + garf

class GarfView:
def close_application(self,widget,event,data=None):
gtk.main_quit()
print " > this is the end"
return False

def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete_event",self.close_application)
window.set_border_width(5)
window.set_title("Garfield > "+Y+"-"+m+"-"+d)
window.set_position(gtk.WIN_POS_CENTER)
window.show()

image = gtk.Image()
image.set_from_file(garf)
image.show()

window.add(image)

def main():
gtk.main()
return 0

if __name__ == "__main__":
GarfView()
main()

Šířka blogu nedovoluje, aby se zde vše zobrazilo (bojuju s tím), ale je to tam, takže když si kód označíte odshora dolů a zkopírujete, tak ho máte všechen. Stačí uložit jako (např.) garf.py a spustit pomocí


$ python garf.py

nebo si přiřadit práva na spuštění a spustit:



$ chmod 744 ./garf.py
$ ./garf.py

0 komentářů: