
Python ile MySQLe bağlanmak için önce MySQLdb kütüphanesini şuradan indirip kuralım. Kütüphanenin doğru çalışıp çalışmadığını kontrol etmek için pythonu açıp kütüphaneyi import etmeye çalışalım.
import MySQLdb
Eğer problem yoksa devam edebiliriz. Önce veritabanına bağlanmak için sunucu, kullanıcı adı, parola ve veritabanı ismini girelim.
import MySQLdb
db = MySQLdb.connect(host="localhost",user="root",passwd="par01a",db="python")
cursor = db.cursor()
şimdi istediğimiz sorguları yazabiliriz.
devamını oku…

Eğer smslerinizi silmek istemiyorsanız ve gelen kutusu yüzlerce sms ile dolduysa ve telefonunuzun sms yedekleme özelliği yoksa Python sizin yardımınıza hemen yetişir (Tabi işletim sisteminiz Symbian olması lazım!).
Hemen inbox kütüphanesini kullanarak 1 KB’den daha az bir betik yazarak tüm smslerinizi text dosyası olarak yedekleyip gönül rahatlığıyla silebilirsiniz. Hemen kodlara geçelim:
from time import ctime
from inbox import Inbox
from os import listdir,mkdir
kutum = Inbox()
id = kutum.sms_messages()
yol = "e:\\mesajlar\\"
if not 'mesajlar' in listdir('e:\\'):
mkdir(yol)
sayi = 10 #yedeklenmesini istediğiniz sms adedi
for i in range(0,sayi):
msj = kutum.address(id[i])+'\n'+ctime(kutum.time(id[0]))+'\n'+kutum.content(id[i])
h,ay,gun,saat,yil = ctime(kutum.time(id[i])).split(" ")
sa,dk,sn=saat.split(':')
d = gun+ay+yil+'-'+sa+'.'+dk+'.'+sn+'-'+kutum.address(id[i])+".txt"
dosya = open(yol+d,'w')
dosya.write(msj.encode('utf-8'))
dosya.close()
print str(sayi)+" adet mesaj '"+yol+"' dizinine kaydedildi."
devamını oku…
Bugün karşılaştığım bir olaydan sonra Python’u daha çok sevmeye başladım. Nokia 6600 rehberini yedeklemeye çalıştık birkaç rehber programı kullandık vCard formatında çıkardı ama isimlerin yaklaşık olarak yarısı görünmedi yani tam olarak alamadık. Derken iş başa düştü ve PyS60 ile birkaç satırda hallettik ve bunu sizinle burada paylaşıyorum.
import contacts
rehber=contacts.open()
liste=''
s=len(rehber)
for id in rehber:
try:
isim=rehber[id][0].value
except:
isim='isim yok'
try:
no=rehber[id][1].value
except:
no='numara yok'
liste = liste+isim+'-'+no+'\n'
dosya_adi = 'e:\\rehber-yedek.txt'
dosya = open(dosya_adi,'w')
dosya.write(liste.encode('utf-8'))
dosya.close()
print s,' kisi "'+dosya_adi+'" adresine yedeklendi.'
devamını oku…
Python ile grafik işleme yapabilmek için PIL (Python Imaging Library) kütüphanesini kullanıyoruz. Kütüphanenin işletim sistemi ve Python sürümümüze uygun olan versiyonunu indirip kuralım. Kütüphanenin doğru bir şekilde kurulup kurulmadığını test etmek için Python komut satırına şunu yazalım:
import PIL
Herhangi bir hata vermediyse kütüphane yüklenmiştir. Şimdi işlem yapmaya başlayabiliriz.
from PIL import Image
resim = Image.open("test.jpg")
print resim.size
(241,172)
devamını oku…
Elimizde bazı veriler var ve bunları POST veya GET metoduyla biyerlere göndermemiz lazım. Yanımızda Python betiklerini çalıştırabilicek bir cihaz (misal: herhangi bir bilgisayar -işletim sistemi farketmez- veya s60 telefon) varsa sorun yok. Hemen kodları yazmaya başlayabilirsiniz. İlk örneğimizde sadece string verileri göndereceğiz. Mesela herhangi bir siteye form bilgilerini giriyoruz.
import urllib, httplib
veriler = urllib.urlencode({'veri':'herhangi bir veri'})
headers = {"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
baglanti = httplib.HttpConnection("ftoptas.com")
baglanti.request("POST","/ornekform/gonder/",veriler,headers)
cevap = baglanti.getresponse()
baglanti.close()
devamını oku…
Python ile programlama yaparken karakter sorununa rastladıysanız sorununuzu çözecek olan şey karakter kodlamasını değiştirmektir. Bu hataya genelde Türkçe karakter kullanırken rastlamışızdır. Bunun için şu yöntemleri kullanabilirz:
Python betiğinin en başına şu satırı yazarak betiğin utf-8 olarak kodlanmasını sağlarız:
# -*- coding: utf-8 -*-
devamını oku…
Google App Engine ilk çıktığında sadece Python desteklemekteydi. Fakat birkaç ay önce Java’ da desteklemeye başladı. Umarız ilerleyen zamanlarda diğer dilleri de destekler. Bu servis açık kaynak yazılım geliştirmek isteyenler için bulunmaz bir nimet. Özellikle Django‘nun büyüsüne kapılıp sonra da onu çalıştıracak ücretisiz :D bir sunucu bulamayan bizler için. Her sunucu django desteklemediği için ve django destekli sunucuların mailyetinin fazla olduğu için isteğiniz biraz kaçabilir. Ama Google App Engine bu konuda bize yardımıcı oluyor. Şimdi App Engine sunucumuzda nasıl django çalıştırabileceğimize bakalım. Burada bazı farklılıklarla karşılaşacağız. Bunlardan en önemlisi modellerdeki farklılıklar. Django’nun django.db.models.Model nesnesini kullanmıyoruz. Onun yerine google.appengine.ext.db.Model nesnesini kullanıyoruz. Metotlar birbirine yakın olduğu için alışmamız uzun sürmez. Bir de Gql diye birşey var. SQL’in Googlecası diyebiliriz. Bu kadar konuştuktan sonra kodlamaya geçebiliriz.
Bu kısma geçmeden önce App Engine kurulumu ile alakalı ön bilgi almak için şuradaki yazıyı okumanızı öneririm.
Klasik bir blog uygulaması yapalım.
devamını oku…
Bugün Google App Engine ile biraz uğraşayım dedim. Gerçekten çok hoşuma giti. Guestbook tutorial’ini sonuna kadar okudum ve uyguladım. Sadece 1.5 KB’lık bir Python betiği sonucunda ortaya çıkan uygulama gayet şaşırtıcı. Gmail hesabınızla giriş yapıp yazı yazılabileceğiniz bir ziyaretçi defteri. Eğer python ile uygulama geliştriyorsanız veya böyle bir fikriniz varsa şiddetle tavsiye ederim. En çok beğendiğim kısmı ise Django kurabilmemiz. Ayrıca bir proje birden fazla kullanıcı tarafından geliştirilebiliyor. Bir proje için 500 MB alan veriyor (beleş tarifede) . Trafik, CPU kullanımı vs. gibi bazı özellikleri arttırmak istediğimizde ise para ödemek zorunda kalıyoruz. Küçük ve orta ölçekte uygulamalar için para ödemeden kullanılabilir gibi görünüyor.
Kısaca nasıl kullanıldığını anlatayım.
- şuradan Google App Engine’e gmail hesabınızla üye oluyorsunuz. Sms ile aktivasyon yapmanız gerekiyor.
- şuradan Create an Application dedikten sonra bir uygulama oluşturuyoruz. Bir gmail hesabıyla 10 toplam 10 adet uygulama oluşturabiliyoruz.
- şuradan Google App Engine SDK’yı indirip kuruyoruz.
- şuradan dökümantasyonu okuyup nasıl başlayacağımızı öğreniyoruz.
devamını oku…
Python ile programlama yapmaya başladıktan sonra, bana pythondan daha eğlenceli gelen bir programlama dili olmadığını düşünüyorum. Pythonun en önemli özelliklerinden biri az kodla çok şey anlatabilme özelliğinin olmasıdır. Bunun bir örneği ise lambda fonksiyonudur.
lambda Fonksiyonu Ne İşe Yarar?
Fonksiyon yazmak kodlarımızın daha anlaşılır, kısa ve temiz olmasını sağlar. Aynı kodları tekrar tekrar kullanmamamız için yazarız. Fakat bazen ufak tefek işler yapmak için defalarca fonksiyon yazarız. Fonksiyonları kod tekrarı yapmamak için kullanıyorduk hani. İşte tam burada lambda fonksiyonu devreye giriyor. Tek değişkenli bir fonksiyon kullanmamız gerekiyorsa bunu işlem içinde tek satırda ekstra kod veya satır eklemeden olayı halletmemizi sağlar. Mesela elimizde bir dizi var ve dizinin her elemanını bir sayıyla çarpıp başka bir dizi oluşturmamız lazım. Bunu yapmak için bir for döngüsü kullanabiliriz fakat bu fazladan bir değişken kullanmamıza neden olur ve enaz iki satır olur. Hele bi de bu dizinin içindeki bazı elemanları bir eleme yaparak alıyorsak bu da bize bir if kullanmamıza malolur. lambda fonksiyonu genelde map(), filter(), reduce() gibi fonksiyonlarla birlikte kullanılır. Lafı fazla uzatmadan örneklere geçelim.
devamını oku…
Symbian telefonunuzda Python scriptlerini çalıştırabilirsiniz. PythonforS60 uygulamasını buradan indirebilirsiniz.Inbox modülü sayesinde gelen kutunuzdaki mesajların adres, içerik, okunmuş olup olmaması ve tarih bilgilerini okuyabilir; okunmamış yapabilir ve silebilirsiniz.
#e:systemappspythoninbox_deneme.py
import inbox #inbox modülünü tanıtıyoruz
kutum = inbox.Inbox() #kutum isminde bir inbox nesnesi tanımlıyoruz
mesaj_no = kutum.sms_messages()#mesaj_no değişkenine tüm mesajların idlerini atıyoruz.
print kutum.address(mesaj_no[0]) #gelen kutusundakii 0 numaralı mesajın adresini ekrana yazdırıyoruz.
devamını oku…