Python ile FTP işlemleri
Dün cep telefonumdan(eski toprak N6600) ftp ile dosya göndermeye çalışırken kullandığım python scriptini sizinle paylaşmak istiyorum. Burada yazacağımız kodları ister bilgisayarınızdan ister Python destekleyen telefonunuzdan çalıştırabilirsiniz. Yapacağımız örneklerin kaynak dosyasını buradan indirebilirsiniz.
Önce ftplib kütüphanesine sahip olup olmadığımızı anlamak için aşağıdaki kodu yazalım.
Google App Engine ile Alexa Rank Değerini Okuma – urlfetch fonksiyonu
Bugünlerde sitemin alexa rank değeri aniden 2 katından fazla artınca biraz kafayı taktım. Derken Google App Engine ile değeri okumaya çalıştım ve sizinle paylaşıyorum.
Bu yazıyı okumaya devam etmeden önce şuradaki yazımı okumanızı öneriyorum.
Önce alexa isminde bir çalışma dizini oluşturuyoruz. Bu dizinin içine app.yaml isminde bir dosya oluşturuyoruz. Dosyanın içeriğini şöyle yapıyoruz:
application: alexa-rank-ogren version: 1 runtime: python api_version: 1 handlers: - url: /.* script: main.py
Python ile MySQL Bağlantısı ve Temel İşlemler

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.
Read more
PyS60 ile SMS Yedekleme

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."
PyS60 ile Telefon Rehberi Yedekleme
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.'
Python ile Resim Üzerine Yazı Yazma
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)
Read more
Pardus’a Google App Engine Kurulumu
Önceki yazılarımda Google App Engine’den biraz bahsetmiştim. Kodlarımızı GAE sunucularına yüklemek için veya yerelde çalıştırmak için bir uygulama kullanıyoruz. Windwos için bu uygulama bir .exe dosyası ve çalıştırıp kuruyoruz. Burada sorun yok. Fakat bu uygulamanın Linux versiyonu ise bir .zip dosyası. Bunu nasıl kullanacağımızı görelim:
1. Adım: Uygulamayı indirelim:
şuradan google_appengine_1.2.3.zip dosyasını indiriyoruz.
2. Adım: indirdiğimiz zip dosyasını açıp /home/faruk/gae (burada ‘faruk’ yerine sizin kullanıcı adınız gelecek) dizinine kopyalıyoruz. Bu kısmı isterseniz sağ tıklayıp buraya çıkar diyerek veya komutlarla şöyle yapabilirsiniz:
Python ile HTTP POST/GET Metodu Kullanma
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()
Python ve UTF-8 Kullanımı
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 -*-
Django Dersleri – 3: Google App Engine & Django
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.
