[Python] SimpleNotes
13.08.2012 17:05
Od dobrych kilku tygodni (z przerwami co prawda) staram się nauczyć coś niecoś o Pythonie. Nie dawno. Raptem kilka dni temu poczułem, że umiem już dostatecznie dużo, by stworzyć coś pożytecznego. Tj. bardziej pożytecznego od różnej maści hello world. Mój wybór padł na prosty notatnik.
Dlaczego Python?
Bo to najlepiej mi znany język. Trochę umiem c++, ale nie na tyle, by zrobić coś pożytecznego, nie siedząc przy okazji pół dnia w dokumentacji. Prędkość nie jest ważna. Do tego dorzucić można wygodne API do GTK+3 i QT4.
Co już jest?
Na razie powstaje aplikacja GUI. Do waszej dyspozycji udostępniam na razie konsolowy odpowiednik. Poniżej znajduje się kod źródłowy aplikacji w wersji konsolowej. Z mojego Gita pobrać możecie core aplikacji GUI.
Kod źródłowy
[code=Python]#!/usr/bin/python # -*- coding: utf‑8 -*- ### ::FUNCTION" :: ###
########################### ### Liczba linii w pliku### ########################### def NumberOfLine(): #Number of line i = 0 with open("Notes.txt", "r") as NOL: for line in NOL: try: if line.strip() != False and line[1] != "@": i = i+1 except IndexError: pass NOL.close() return i ######################### ### DELETE LINES ### ######################### def Delete(x): with open("Notes.txt","r") as f: items = f.readlines() f.close() with open("Notes.txt","w") as out: for item in items[x:]: out.write("%s\n" % item) ######################### print "Wybierz\n" print "|A|dd line\n|R|ead Note File\n|D|elete\n|Q|uit" choice = "N" #########################
while(choice != "Q"): choice = raw_input("Twoj wybor:\t") if(choice == "A" or choice == "a"): text = raw_input("Podaj? notatke. ENTER konczy\n\n") with open("Notes.txt","a") as notefile: NOL = NumberOfLine()+1 if text[0] != '@': notefile.write("["+str(NOL)+"] "+text+"\n") notefile.close() else: notefile.write(text+"\n") notefile.close() continue elif(choice == "R" or choice == "r"): notefile = open("Notes.txt","r") print notefile.read() notefile.close() continue elif(choice == "D"): x = raw_input("Ile linii usunac?") Delete(int(x)) continue else: continue [/code]
Instalacja
Najprościej:
[list] [item]Pobrać z linku na końcu plik NotesCmd.py i Notes.txt[/item][item]Zainstalować (jeśli nie mamy) Python 2.6 lub nowszy[/item][item]Dwuklik na pliku z rozszerzeniem do .py[/item][item]Jeśli nie uruchomi się w systemach linuxowych wpisujemy
[code=Bash]chmod +x /home/<user>/<ścieżka>/NotesCmd.py[/code]
[/item][/list]
Struktura pliku Notes.txt
Notatki można tworzyć korzystając z ulubionego edytora tekstowego.
[code=Python] [1] Wpis 1 [2] Wpis 2 [3] Wpis 3 @ KOMENTARZ [4] Wpis 4 [/code]
Link