Daha önce C++ ile basit bir tic-tac-toe (üç taş) oyunu yazmıştım. Bir süredir Java ile ilgileniyorum. Java’da da Swing ile dirsek teması içerisindeyim. Hazır elim masaüstü (desktop) uygulamalara değmişken bir arayüz hazırlayayım dedim. Programı NetBeans ile yazdım. Ubuntu üzerinde başladığım kodlamayı Windows üzerinde bitirdim. İşte bunun için Java’yı sevdim
Ekran Görüntüsü

Proje Dosyasını İndir
İyi Oyunlar…
Namaz Vakitleri, ilk PyQt uygulamam. Aslında bunu da Tkinter ile yapacaktım ama artık bir yerden PyQt’ye başlamak gerektiğini düşündüm. Program, namaz vakitlerini diyanet’in sitesinden çekip bildiriyor. Dolayısıyla internet olmadan namaz vakitlerini öğrenmek mümkün olmuyor. Belki ilerde çevrimdışı(offline) olarak da vakit öğrenme özelliği eklenebilir.
Uygulamayı Ubuntu 9.10 ve Windows Vista üzerinde denedim. Ekran görüntülerini de aşağıda bulabilirsiniz. Programı çalıştırmak için bilgisayarınızda PyQt4 modülü yüklü olmalıdır.
Namaz Vakitleri Programını indir
Ekran Görüntüleri
Yararlı Bağlantılar
http://ferruh.mavituna.com/namaz-vakitleri-v1-0-namaz-saatleri-ve-namaz-vakitleri-bildirme-programi-oku/
Allah Kabul Etsin…
Geçenlerde, e-posta adresime posta göndermek için bir python betiğine ihtiyacım olmuştu. İnternette biraz araştırınca güzel bir kod buldum. Kodda, Gmail adresimize bağlanarak istediğimiz adrese e-posta atabiliyoruz. Bir zaman o kodu kullandım ama hem içindekileri biraz daha anlamak hem de kendim yazarak deneyim kazanmak için internetteki belgeleri okumaya başladım. Kafamdaki sorulara bir ölçüde yanıt bularak yeni bir e-posta betiği (script) yazdım. Kod, yukarıda örneğini verdiğim koda benzer.
posta_olustur fonksiyonuyla e-postamız oluşturulmaya başlanıyor. Önce bazı başlık bilgileri (header) ekleniyor. Ardından attach fonksiyonuyla postamıza mesajımız (yazı kısmı) ekleniyor. For döngüsü ile de dosyalarımız teker teker eklenerek posta oluşturma işlemi sona erer.
posta_gonder fonksiyonuyla da gmail sunucusuna giriş yapılıp (login) e-postamız belirttiğimiz adrese gönderilir.
En son olarak da kullanıcıdan bilgiler istenip, gerekli fonksiyonlar çalıştırılır.
Uygulamanın Tam Kodu:
#Batuhan Bayrakçı - Python ile Gmail Üzerinden E-posta Göndermek
#!/usr/bin/python2.6
#-*-coding:utf-8-*-
import smtplib, os
#MIME tipinde posta oluşturmak için gerekli modüller
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import encoders
posta = MIMEMultipart()
dosyalar=[""]
def posta_olustur():
posta['Subject']=konu
posta['From']=gmail_kullanici
posta['To']=kime
posta.attach(MIMEText(mesaj)) #mesaj (yazı) kısmımız postamıza ekleniyor
for dosya in dosyalar: #dosyalar eklenmeye başlar
if (dosya!=""):
try:
eklenti = MIMEBase("application", "octet-stream")
eklenti.set_payload(open(dosya, "rb").read())
encoders.encode_base64(eklenti)
eklenti.add_header("Content-Disposition", "attachment", filename=os.path.basename(dosya))
posta.attach(eklenti)
except:
print "Dosya eklemede hata, dosya adını yanlış girmiş olabilirsiniz..."
else: continue
def posta_gonder():
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_kullanici, gmail_sifre)
print "Baglantı sağlandı"
smtpserver.sendmail(gmail_kullanici, kime, posta.as_string())
print "Posta Gönderildi"
smtpserver.close()
kime = raw_input("Kime Göndereceksiniz?: ")
gmail_kullanici = raw_input("Gmail Hesabınızın Kullanıcı Adı: ")
gmail_sifre = raw_input("Gmail Hesabınızın Şifresi: ")
konu = raw_input ("Posta Konusu: ")
mesaj = raw_input ("Mesajınız: ")
#Dosyaların eklemesi yapılmaya başlanır
while True:
cevap = raw_input("Dosya eklemek ister misiniz? (e/h): ")
if(cevap=='e' or cevap=='E'):
dosya_gonder = raw_input("Dosya göndermek istiyorsanız dosyanızın tam konumunu veya " + os.getcwd() + " dizinindeyse sadece adını yazın: ")
if (dosya_gonder!=""):
dosyalar.append(dosya_gonder)
else:
break
elif(cevap=='h' or cevap=='H'):
break
else:
print "Geçersiz giriş"
continue
#Dosya eklenme işi biter
posta_olustur()
posta_gonder()
Yararlı Kaynaklar:
http://www.tutorialspoint.com/python/python_sending_email.htm
http://docs.python.org/library/email
http://docs.python.org/library/smtplib.html
http://www.devshed.com/c/a/Python/Python-Email-Libraries-SMTP-and-Email-Parsing/
İyi Çalışmalar…
Etiketler:
e-posta,
ehlo,
email,
Gmail,
helo,
mail,
MIME,
MIMEBase,
MIMEMultipart,
MIMEText,
posta,
Python,
python ile mail işlemleri,
smtp
Daha önce Python‘da ekran görüntüsü almayla ilgili kodu PerfectGate‘de görmüştüm. Ben de aynı işlemi Tkinter kullanarak yaptım. Ek olarak bir geciktirme çubuğu var. Bununla, görüntü almayı, belirlediğiniz saniye kadar geciktirebilirsiniz. Kodu çalıştırabilmek için Python Imaging Library (PIL) yüklü olmalıdır.
# Batuhan Bayrakci - Ekran Goruntusu Alma Aracı
# -*- coding: cp1254 -*-
import ImageGrab
import time
from Tkinter import *
from tkMessageBox import *
def ekran_cek():
pencere.iconify()
dosya_adi="Ekran Görüntüsü-%s.jpg" % (time.strftime("%d-%m-%Y %H.%M.%S"))
time.sleep(kay.get())
ImageGrab.grab().save(dosya_adi)
showinfo("Durum","Ekran Görüntüsü Alindi")
pencere=Tk()
pencere.geometry("200x100+400+200")
pencere.resizable(width=FALSE, height=FALSE)
pencere.title("Ekran Kaydedici")
yazi = Label(text = "Geciktirme Süresi (saniye)")
yazi.pack()
kay = Scale(pencere, from_=0, to=8, orient=HORIZONTAL)
kay.pack()
dugme = Button(text="Ekran Görüntüsü Al", command=ekran_cek)
dugme.pack()
mainloop()
İyi Çalışmalar…
C++‘da “Operator Overloading” konusuna çalışırken karmaşık sayılarda toplama, çıkarma, çarpma ve bölme işlemlerini yapabilecek basit bir sınıf yazmıştım.
Devamını oku… »