Örnek kod paylaşımı

Başlatan heartsmagic, 09 Şubat 2009 - 01:54:57

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

heartsmagic

Dileyenler Python ile yazdığı uygulamaları veya doğrudan kodları burada paylaşabilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

utdmr

Hiç kimse yazmamış, bari ben ilk python programımı sunayım. Program alfa sürümü ötesi, bayağı eksikleri var.

Programın adı aptitudem. mysql veritabanını kullanarak aptitude ile yaptığımız işlemleri ardarda yapmamızı sağlıyor. Örneğin önce "aptitude update" de, sonra "aptitude full-upgrade" ardından da "aptitude instal *****" komutunu verebiliyor ardarda.

Programın çalışması için kodalarda "utdmr" ve "****" yazan yerlere kendi mysql kullanıcı adınızı ve şifrenizi yazmanız gerekiyor. Programın çalışabilmesi için sisteminizde python, python-mysqldb, mysql ve aptitudem isimli mysql veritabanının içinde islemler adlı +-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| no    | int(11) | NO   | PRI | NULL    | auto_increment |
| komut | text    | YES  |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+
özellikli bir tablo gerekiyor.

Kullanımı: öncelikle bir terminalde root yetkileri ile aptitudemd.py yi çalıştırın. Ardından başka bir terminalde aptitude yerine aptitudem.py yi yazarak istediğiniz komutu verebilirsiniz.

Programda güvenlik açığı var, isteyen yetkisiz kullanıcı root olarak istediği işlemi yaptırabilir. Ancak en azından okuyanlara python-mysqldb hakkında bir örnek olur...

Program linki:
http://rapidshare.com/files/224498673/aptitudem.tar.gz.html
Kişisel Blogum: Çoğunlukla Zararsız - cogunluklazararsiz.org
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -and a lot of courage- to move in the opposite direction.

command

#2
yeni öğrenmeye başladığım dil olan pythonu çok sevdim :)


#!/usr/bin/env python
#-*-coding:utf-8-*-

import random

class rand(object):
def __init__(self):
self.randomize()
while True:
soru=raw_input("Tekrar denemek istermisiniz : ")
if soru.upper() == "E":
self.randomize()
else:
print "iyi şanslar"
break

def randomize(self):
liste =[]

for i in range(6):
while len(liste) !=6:
a=random.randint(1,49)
if a not in liste:
liste.append(a)
liste.sort()
print liste

uyg=rand()


pascal bölümünde verdiğim rasgele sayısal oynayan kodun python karşılığıdır

command

Henüz beta ve şu an sadece tanımladığımız dosyayı oynatabiliyor kullanımı çok basit sadece üç adet button var
buyurun bu ekran görüntüsü :)


[IMG]http://img28.imageshack.us/img28/6143/screenshotu.th.jpg[/img]

buda kaynak kodu :)


#!/usr/bin/env python
#-*-coding:utf-8-*-

from Tkinter import *
import os

dosya ="~/mp3/1.mp3"

pencere = Tk()
pencere.geometry("200x150+150+150")
pencere.resizable(width=FALSE, height=FALSE)
baslik = pencere.title("TkMp3")


def player():
os.system("mpg123 -q "+dosya+" &")

def durdur():
os.system("killall mpg123")

dosyayaz=Label(text=dosya)
dosyayaz.pack()
dugme3 = Button(text = "KAPAT",command=pencere.quit)
dugme2 = Button(text = "DUR", command=durdur)
dugme = Button(text = "ÇAL", command=player)
dugme.pack()
dugme2.pack()
dugme3.pack()

mainloop()


istihza ekibine teşekkürlerimide iletirim

gotocan

goto www.gotocan.com;
http://ubuntucounter.geekosophical.net//img/ubuntu-user.php?user=28544
Nam-ı diğer : macellan

Wasp

#5
Pythona Başlayanlar İçin Küçük Bir Hesaplama Programı

from __future__ import division
#Artık bir sonraki Python oturumuna kadar bütün matematik işlemlerinizin sonucu kayan noktalı
#sayı cinsinden gösterilecektir.
topla = "(1) Toplama" #Burada değişken tanımlamalarımızı yapıyoruz
cikar = "(2) Çıkarma"#Dikkat edilmesi gereken değişken isimlerinde
carp = "(3) Çarpma"#türkçe karakter olmaması
bol = "(4) Bölme"

print topla #secenekleri Ekrana Yazdırıyoz
print cikar
print carp
print bol
sor=raw_input ("Lütfen Yapmak İstediğiniz İşlemi Numarasını Girin :")
if sor=="1":
   sayi1=input("Lütfen Toplama İşlemi İçin 1. Sayıyı Girin :")
   sayi2=input("Lütfen Toplama İşlemi İçin 2. Sayıyı Girin :")
   print sayi1, "+", sayi2,":",sayi1 + sayi2
if sor=="2":
   sayi1=input("Lütfen Çıkarma İşlemi İçin 1. Sayıyı Girin :")
   sayi2=input("Lütfen Çıkarma İşlemi İçin 2. Sayıyı Girin :")
   print sayi1, "-", sayi2,":",sayi1 - sayi2
if sor=="3":
   sayi1=input("Lütfen Çarpma İşlemi İçin 1. Sayıyı Girin :")
   sayi2=input("Lütfen Çarpma İşlemi İçin 2. Sayıyı Girin :")
   print sayi1, "x", sayi2,":",sayi1 * sayi2
if sor=="4":
   sayi1=input("Lütfen Bölme İşlemi İçin 1. Sayıyı Girin :")
   sayi2=input("Lütfen Bölme İşlemi İçin 2. Sayıyı Girin :")
   print sayi1, "/", sayi2,":",sayi1 / sayi2




unhandled exception: this file may contain various threads for your system and recommended to be blocked

restless

Genel not ortalamanızı hesaplayan bir programcık. Öğrenirken yazmıştım.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#Son derece ilkel bir not ortalaması hesaplama uygulaması
#Aslında zip, map, filter, ya da for kullanılarak çok
#daha kısa tutulabilirdi. Sonlandırmak için 666 yazmanız
#yeterli.

# Kullanım
#Dersin kredisini sonraki komutta da aldığınız notu yazın (sayısal değeri)
from __future__ import division

print
print
print
print "*************************************************"
print "*************************************************"
print "************** GPA Hesaplayıcı ******************"
print "*************************************************"
print "**    Programı sonlandırmak için '666' yazın   **"
print "*************************************************"
print "*************************************************"
print
print
print
veriler = []
while True:
    a = input("Dersin Kredisi: ")
    if a == 666:
        break
    b = input("Dersin Notu   : ")
    if b == 666:
        break
    try:
        veriler.append([a,b])
    except ValueError:
        print "Sayısal Değer girin"
    krediler = [row[0] for row in veriler]
    notlar = [row[1] for row in veriler]
    carpim = [notlar[i] * krediler[i] for i in xrange(len(notlar))]
    toplam = sum(carpim)
    toplam_kredi = sum(krediler)
    print "*******************************"
    print "Kredi toplamı", toplam_kredi
    print "Toplam kredi", toplam
    print "*******************************\n"
    gpa = toplam / toplam_kredi
    print "*******************************\n"
    print "Genel Not Ortalamanız: ", gpa, " \n"
    print "*******************************"

restless

Alıntı yapılan: isKo - 28 Ocak 2010 - 03:45:08
@restless

cgpa hesabi yapiyor mu bu?

Dersleri tek tek girmek lazım.

mbt28

Aslında bu program biraz modifiye ile webde de kullanılabilir, merak edenler mod_python u incelesinler.

zipco

Esenlikler
Kendim icin yaptigim kodu paylasiyim. Hem diyer arkadaslarada yararli olur hemde  arkadaslardan biri daha da gelistirir.
Program txt dosyasi icindeki ayetleri her 15 dk bir gosteriyor.Ben Kuran ayetleri icin kullaniyorum. Isteyen istedigi gibi kullansin.
Kodlarin hepsi bana ait degil. Bilmedigin yerleri netten arayip degistirdim kodlara uyguladim.

#/usr/bin/python
import pynotify , os ,time
not_executed = 1
i=1
fileHandle = open ( 'uyarici.txt' )
while 1:
time.sleep(50)
dt = list(time.localtime())
minute = dt[4]
if  minute == 15  or minute == 30  or minute==0  or minute==45 :
lineList = fileHandle.readline()
fileHandle.tell()
if lineList == 'end/n' or lineList =='' or lineList == '/n':
fileHandle.seek (0)

try:
if pynotify.init("Uyarici"):
Alert = pynotify.Notification("Ayet", str(lineList))
Alert.show()
else:
print "pynotify baslatilamadi."
except:
print "pynotify kurulmadi."

fileHandle.close()

ırmak

Alıntı yapılan: zipco - 27 Haziran 2010 - 20:08:41
Esenlikler
Kendim icin yaptigim kodu paylasiyim. Hem * diğer arkadaslarada yararli olur hemde  arkadaslardan biri daha da gelistirir.
Program txt dosyasi icindeki ayetleri her 15 dk bir gosteriyor.Ben Kuran ayetleri icin kullaniyorum. Isteyen istedigi gibi kullansin.
Kodlarin hepsi bana ait degil. Bilmedigin yerleri netten arayip degistirdim kodlara uyguladim.

#/usr/bin/python
import pynotify , os ,time
not_executed = 1
i=1
fileHandle = open ( 'uyarici.txt' )
while 1:
time.sleep(50)
dt = list(time.localtime())
minute = dt[4]
if  minute == 15  or minute == 30  or minute==0  or minute==45 :
lineList = fileHandle.readline()
fileHandle.tell()
if lineList == 'end/n' or lineList =='' or lineList == '/n':
fileHandle.seek (0)

try:
if pynotify.init("Uyarici"):
Alert = pynotify.Notification("Ayet", str(lineList))
Alert.show()
else:
print "pynotify baslatilamadi."
except:
print "pynotify kurulmadi."

fileHandle.close()


bundan süper kelime ezberleme programı yapılır.
hatta üds/kpds kelime ezber programı denilir adına da.
bildiğin kamu hizmeti olur :)

zipco


hitokiri

#12
şimdi ben bi şey yaptım dosya seçici aracı ile heim seçilen dosyaları listeye alıp mplayer ile açıyor bi de normal açıyor örnek kod olarak paylaşayım dedim :)
#!/usr/bin/env python
#! coding:utf-8 -*-
import gtk,os #gtk ve os modülünü yükledik

class hitokiri(object): 
    def __init__(self):

window = gtk.Window() #penceremizi oluşturduk
window.connect("delete_event",gtk.main_quit) #pencerinin düzgün olarak kapanmasını sağladık
window.set_title("....\/\.................") #pencere için başlık
window.set_icon_name("media-optical") #pencere için icon name seçtik
window.resize(560,490) #pencerenin minimum boyutu

self.gen = gtk.Expander("Arşivi Yokla")  # expander adlı pencere aracını çağırdık
self.dialog = gtk.FileChooserWidget() # dosya seçimi için dosya seçimii widgetini tanımladık
self.dialog.set_select_multiple(True)

def filtre(isim,doku):
filter = gtk.FileFilter()
filter.set_name(isim)
for x in doku:
filter.add_pattern(x)
self.dialog.add_filter(filter)

filtre("Tüm Dosyalar","*")
filtre("Müzik Dosyaları",["*mp3","*ogg","*flac","*wav","*amr","*wma","*ac3","*mpeg"])
filtre("Video Dosyaları",["*flv","*avi","*mp4","*rmvb","*dv","*vob","*mpeg","*mpg"])

self.gen.add(self.dialog) #expander aracına dosya seçim widget'ini ekledik

toolbar = gtk.Toolbar() #toolbar oluşturduk
toolbar.set_style(gtk.TOOLBAR_BOTH) # toolbar için görünüm sitili

self.balon = gtk.Tooltips() #balon metinler atamak için tooltips aracını ekledik

self.image = gtk.Image() #toolbar için resim oluşrduj
self.image.set_from_stock(gtk.STOCK_MEDIA_PLAY,1) #resimi stock tan seçerek oluşturduk
toolbar.append_item( None,"Oynat",None,self.image,self.oynat ) #toolbar için yeni öğe de resmi ve işlemi belirttik

mage = gtk.Image() #toolbar için resim oluşrduj
mage.set_from_stock(gtk.STOCK_MEDIA_NEXT  ,1) 
toolbar.append_item(None,"Sonraki",None,mage,self.son) 

image1 = gtk.Image()
image1.set_from_stock(gtk.STOCK_MEDIA_STOP,1)
toolbar.append_item(None,"Durdur",None,image1,self.dur)

resim  = self.resim_label_box(gtk.STOCK_OPEN,"Aç") # buton'a resin ve metin eklemek için
kutu2 = gtk.Button()
kutu2.add(resim)
kutu2.connect("clicked",self.ac)
kutu2.set_relief(gtk.RELIEF_NONE) #buton dış kabuk görünümü

self.kutu3 = gtk.VolumeButton()
self.kutu3.connect("value_changed",self.deneme)
self.kutu3.set_relief(gtk.RELIEF_NONE) #buton dış kabuk görünümü

self.res   = gtk.Image()
self.res.set_from_stock(gtk.STOCK_ZOOM_OUT,1)
self.kut = gtk.ToggleButton()
self.kut.add(self.res)
self.kut.set_relief(gtk.RELIEF_NONE) 
self.kut.connect("clicked",self.mini)

tool  = gtk.Toolbar()
tool.set_style(gtk.TOOLBAR_BOTH)

hbox = gtk.HButtonBox() #toolbar ve butonu düzgün görünmeleri için hbuttonbox adlı araca ekledik
hbox.add(toolbar)
toolbar.add(self.kutu3 )

tool.add(self.kut)
separator = gtk.SeparatorToolItem()
        tool.insert_widget(separator, None, None,-1)
tool.add(kutu2)
hbox.add(tool)

self.balon.set_tip(kutu2,"Seçilen Öğeyi Öntanımlı Olarak Aç",None) #buton için balon metni girdik

self.vpaned = gtk.VPaned() #oluştrduğumuz araçları vpaned'a ekledik
self.vpaned.add(self.gen)
self.vpaned.set_position(440) #vpaned için öntanımlı görünüm boyutu
self.vpaned.add(hbox)

window.add(self.vpaned) # vpaned aracını penceremize ekledik
window.show_all()
self.pen = window
    def mini(self,data):
    if self.kut.get_active() == True:
self.gen.set_expanded(False)
self.vpaned.set_position(-1)
self.pen.resize(1,1)
self.res.set_from_stock(gtk.STOCK_ZOOM_IN,1)
self.balon.set_tip(self.kut,"Normal Görünüm",None) 
else:
self.vpaned.set_position(440)
self.pen.resize(560,490)
self.gen.set_expanded(True)
self.res.set_from_stock(gtk.STOCK_ZOOM_OUT,1)
self.balon.set_tip(self.kut,"Mini Görünüm",None) 
    def resim_label_box(self,icon_name, label_text): #buton için resim ve metni birlikte kullanabilmek için farklı bir fonksiyon oluşturduk...
box1 = gtk.HBox(False, 0)
image = gtk.Image()
image.set_from_stock(icon_name,1)
label = gtk.Label(label_text)
box1.pack_start(image, False, False, 3)
box1.pack_start(label, False, False, 3)
box1.show_all()
return box1
    def deneme(self,w,data):
    bad = self.kutu3.get_value()
    self.pen.set_opacity(bad)
    def son(self,data):
os.system("pkill mplayer")
    def ac(self,data): # seçilen öğenin işlemler de kullanılabilmesini sağladık
self.liste("gnome-open",self.dialog)
os.system("/tmp/liste &")
    def liste(self,komut,oge):
    os.system("rm -rf /tmp/lis*")
    uri =  oge.get_filenames()
for x in uri:
os.system("echo '" + x + "' >> /tmp/liste" )
os.system("""sed 's/^/"""+ komut +"""  "/' /tmp/liste|tee /tmp/list""")
os.system("""sed 's/$/" ;/' /tmp/list > /tmp/liste""")
os.system("chmod +x /tmp/liste; rm -rf /tmp/list")
    def oynat(self,data):
os.system("killall sh /tmp/liste & killall mplayer; rm -rf /tmp/lis*")
self.liste("mplayer",self.dialog)
os.system("/tmp/liste &")
    def dur(self,data):
    os.system("killall sh /tmp/liste & killall mplayer")
if __name__ == "__main__" : # eğer __name__ "__main__" 'e eşitse ;
hitokiri()
gtk.main()

kod etiketinde pek düzgün görünmedi gibi < http://pastebin.com/LdTJVTQA

eMKey

istihza.com'daki python derslerine başladım. Daha çok acemiyim ama ben de rastgele loto numaraları üreten program yazdım. :) Sayısal loto, şans topu, on numara ve süper loto (Milli piyangonun sitesinden baktım.) için numaralar üretiyor.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random
kntrl = ""

while True:
   
    if kntrl == "q" or kntrl == "Q":
        break

    else:
        loto = random.sample(xrange(1, 50), 6)
        stopu1 = random.sample(xrange(1, 35), 5)
        stopu2 = random.sample(xrange(1, 15), 1)
        onnum = random.sample(xrange(1, 81), 10)
        sloto = random.sample(xrange(1, 55), 6)
       
        loto.sort()
        stopu1.sort()
        onnum.sort()
        sloto.sort()

        print "\n\n\nSayısal Loto:\n%s \n" %(loto)
        print "Şans Topu:\n%s + %s\n" %(stopu1, stopu2)
        print "On Numara:\n%s\n" %(onnum)
        print "Süper Loto:\n%s\n\n\n" %(sloto)
       
        kntrl = raw_input("Yeni sayılar için \"ENTER\",\
çıkmak için \"Q\" tuşuna basınız...")


Ekran Görüntüsü:
[IMG]http://i54.tinypic.com/2mcc585.png[/img]


The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

sem

Başlagıç yapmayı ddüşünen diğer arkadaşlar için de güzel ve yararlı olacaktır bu tarz paylaşımlar... Teşekkürler paylaşım iiçn, elinize sağlık...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eMKey

Eski konuları tekrar ederken listelerle alakalı rastgele parola üreten program yazmaya çalıştım.
Sonuçta bu çıktı ortaya. Doğru yöntem bu olmayabilir kanımca ama birşeyler yapıyor :)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random
import sys

parola =""
uzunluk = ""

parola_tumu = []
parola_ls = []
uret = []

sayilar = range(0, 10)
kucuk_harfler = range(97, 123)
buyuk_harfler = range(65, 91)
ozel_karakterler = ["!", "#", "+", "$", "&", "*", "?", "-", "_"]

for i in range(0, len(kucuk_harfler)):
parola_tumu.append(chr(kucuk_harfler[i]))
parola_tumu.append(chr(buyuk_harfler[i]))
try:
parola_tumu.append(sayilar[i])
except IndexError:
pass
try:
parola_tumu.append(ozel_karakterler[i])
except IndexError:
pass

try:
uzunluk = int(raw_input("\nParolanızın uzunluğu kaç karakter olsun?...: "))
except ValueError:
print "\nBir sayı girmeniz gerekmektedir.\n"
sys.exit()

uret = random.sample(xrange(0, len(parola_tumu)), uzunluk)

for i in range(0, uzunluk):
parola_ls.append(parola_tumu[uret[i]])
parola = parola + str(parola_ls[i])

print "\n\nÜretilen Parola: %s\n" %(parola)


Çıktısı:


Parolanızın uzunluğu kaç karakter olsun?...: 8


Üretilen Parola: !G1h5U9i

The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

OnLyCode

Python 3 Ve Tkinter Kullanarak LocalHost Paketlerini Kuran Basit Bir Program.
#!/usr/bin/env python3
import os
from tkinter import *

pencere = Tk()

def kur():
    os.system("sudo apt-get install apache2, mysql-server, php5, php5-mysql, phpmyadmin")
   

a = pencere.title("Kubuntu/Ubuntu Localhost Yükleyici")
uyari = Label(pencere,text="Kurulum Başlasın mı ?")
uyari.pack()


dugme1 = Button(text = "Kapat", command = pencere.quit)
dugme1.pack(side = LEFT)

dugme2 = Button(text = "Kur", command = kur)
dugme2.pack(side = RIGHT)

mainloop()

risperdal

Pagerank öğrenmek için


#!/usr/bin/env python
#
#  Script for getting Google Page Rank of page
#  Google Toolbar 3.0.x/4.0.x Pagerank Checksum Algorithm
#
#  original from http://pagerank.gamesaga.net/
#  this version was adapted from http://www.djangosnippets.org/snippets/221/
#  by Corey Goldberg - 2010
#
#  Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php



import urllib


def get_pagerank(url):
    hsh = check_hash(hash_url(url))
    gurl = 'http://www.google.com/search?client=navclient-auto&features=Rank:&q=info:%s&ch=%s' % (urllib.quote(url), hsh)
    try:
        f = urllib.urlopen(gurl)
        rank = f.read().strip()[9:]
    except Exception:
        rank = 'N/A'
    if rank == '':
        rank = '0'
    return rank
   
   
def  int_str(string, integer, factor):
    for i in range(len(string)) :
        integer *= factor
        integer &= 0xFFFFFFFF
        integer += ord(string[i])
    return integer


def hash_url(string):
    c1 = int_str(string, 0x1505, 0x21)
    c2 = int_str(string, 0, 0x1003F)

    c1 >>= 2
    c1 = ((c1 >> 4) & 0x3FFFFC0) | (c1 & 0x3F)
    c1 = ((c1 >> 4) & 0x3FFC00) | (c1 & 0x3FF)
    c1 = ((c1 >> 4) & 0x3C000) | (c1 & 0x3FFF)

    t1 = (c1 & 0x3C0) << 4
    t1 |= c1 & 0x3C
    t1 = (t1 << 2) | (c2 & 0xF0F)

    t2 = (c1 & 0xFFFFC000) << 4
    t2 |= c1 & 0x3C00
    t2 = (t2 << 0xA) | (c2 & 0xF0F0000)

    return (t1 | t2)


def check_hash(hash_int):
    hash_str = '%u' % (hash_int)
    flag = 0
    check_byte = 0

    i = len(hash_str) - 1
    while i >= 0:
        byte = int(hash_str[i])
        if 1 == (flag % 2):
            byte *= 2;
            byte = byte / 10 + byte % 10
        check_byte += byte
        flag += 1
        i -= 1

    check_byte %= 10
    if 0 != check_byte:
        check_byte = 10 - check_byte
        if 1 == flag % 2:
            if 1 == check_byte % 2:
                check_byte += 9
            check_byte >>= 1

    return '7' + str(check_byte) + hash_str



if __name__ == '__main__':
    print get_pagerank('http://www.google.com')


eMKey

Yazdığım praola üreten programa PyGtk ile arayüz eklemeye çalıştım. Şöyle birşey çıktı ortaya

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require20()

import gtk
import random

class PassGenGUI(object):
    def __init__(self):

        self.pncr = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.pncr.set_border_width(10)
        self.pncr.connect("delete_event", gtk.main_quit)
        self.pncr.set_size_request(256, 256)
        self.pncr.set_resizable(False)
        self.pncr.set_title("Password Generator - GUI")
        #self.pncr.set_icon_from_file("/mnt/1000GB/Dokümanlar/Python 2x/PyGtk/PassGenGUI/logo.svg")


        self.bilgi = """
        Bu program istediğiniz özelliklerde ve
        uzunlukta parola oluşturmanızı sağlar."""
        self.bilgi_etk = gtk.Label(self.bilgi)
        self.bharf = gtk.CheckButton("Büyük Harfler")
        self.kharf = gtk.CheckButton("Küçük Harfler")
        self.sayi = gtk.CheckButton("Sayılar")
        self.ozkar = gtk.CheckButton("Özel Karakterler")
        self.uzun_etk = gtk.Label("Karakter Sayısı")
        self.uzun_etk.set_alignment(0.3, 0.5)
        self.uzun_ent = gtk.Entry()
        self.uzun_ent.set_max_length(2)
        self.par = gtk.Label("")
        self.par.set_selectable(True)
        self.par.set_alignment(0.03, 0.5)
        self.uret = gtk.Button("Üret")
        self.uret.connect("clicked", self.par_uret)
        self.cik = gtk.Button("Çık")
        self.cik.connect("clicked", gtk.main_quit)
        #self.resim = gtk.Image()
        #self.resim.set_from_file("/mnt/1000GB/Dokümanlar/Python 2x/PyGtk/PassGenGUI/logo.svg")
        self.tablo = gtk.Table(15, 10, True)


        self.tablo.attach(self.bilgi_etk, 0, 9, 0,3)
        self.tablo.attach(self.bharf, 0, 5, 4, 5)
        self.tablo.attach(self.kharf, 0, 5, 5, 6)
        self.tablo.attach(self.sayi, 0, 5, 6, 7)
        self.tablo.attach(self.ozkar, 0, 5, 7, 8)
        self.tablo.attach(self.uzun_etk, 0, 4, 9, 10)
        self.tablo.attach(self.uzun_ent, 4, 5, 9, 10)
        self.tablo.attach(self.par, 0, 10, 11, 12)
        self.tablo.attach(self.uret, 2, 4, 13, 15)
        self.tablo.attach(self.cik, 5, 7, 13, 15)
        #self.tablo.attach(self.resim, 6, 8, 4, 8)


        self.pncr.add(self.tablo)
        self.pncr.show_all()



    def par_uret(self, arac):

        parola_tumu = []
        parola_ls = []
        paro = []
        parola = ""
        sayilar = range(0, 10)
        kucuk_harfler = range(97, 123)
        buyuk_harfler = range(65, 91)
        ozel_karakterler = ["!", "#", "+", "$", "&", "*", "?", "-", "_"]


        for i in range(0, len(kucuk_harfler)):
            if self.kharf.get_active():
                parola_tumu.append(chr(kucuk_harfler[i]))
            if self.bharf.get_active():
                parola_tumu.append(chr(buyuk_harfler[i]))
            if self.sayi.get_active():
                try:
                    parola_tumu.append(sayilar[i])
                except IndexError:
                    pass
            if self.ozkar.get_active():
                try:
                    parola_tumu.append(ozel_karakterler[i])
                except IndexError:
                    pass
            else:
                self.par.set_markup("<b>Hiçbir seçenek seçilmedi!</b>")


        try:
            uzunluk = int(self.uzun_ent.get_text())
        except ValueError:
            self.par.set_markup("<b>Parolanızın kaç karakter olacağını giriniz.</b>")
            return parola_tumu


        paro = random.sample(xrange(0, len(parola_tumu)), uzunluk)


        for i in range(0, uzunluk):
            parola_ls.append(parola_tumu[paro[i]])
            parola = parola + str(parola_ls[i])


        self.par.set_markup("<b>%s</b>" %parola)



    def main(self):
        gtk.main()



passgui = PassGenGUI()
passgui.main()




The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

hitokiri

Alıntı Yapself.par.set_markup("<b>%s</b>" %parola)
özel karakterlede sorun oluşturmuş gibi set markup yerine sadece kalın yazmak için ,
pango kullanabilirsin ,
        self.par.set_text(" %s " %parola)
        attr = pango.AttrList()
        size = pango.AttrWeight(pango.WEIGHT_BOLD,  0,  100)
        attr.insert(size)
        self.par.set_attributes(attr)

http://www.pygtk.org/docs/pygtk/class-pangoattribute.html
Bu arada güzel program olmuş eline sağlık,

eMKey

#20
Alıntı yapılan: hitokiri - 16 Ocak 2011 - 06:49:14
Alıntı Yapself.par.set_markup("<b>%s</b>" %parola)
özel karakterlede sorun oluşturmuş gibi

Kontrol ettim "&" işareti girince araya sorun oluşturuyor. Tekrar düzenledim (pangoya bakmadım daha, & işaretini çıkarttım :)). Girilen sayı listedeki
karakter sayısını geçincede hata vermiyor artık.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require20()

import gtk
import random

class PassGenGUI(object):
    def __init__(self):

        self.pncr = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.pncr.set_border_width(10)
        self.pncr.connect("delete_event", gtk.main_quit)
        self.pncr.set_size_request(256, 256)
        self.pncr.set_resizable(False)
        self.pncr.set_title("Password Generator - GUI")
#        self.pncr.set_icon_from_file("/mnt/1000GB/Dokümanlar/Python 2x/PyGtk/PassGenGUI/logo.svg")


        self.bilgi = """
        Bu program istediğiniz özelliklerde ve
        uzunlukta parola oluşturmanızı sağlar."""
        self.bilgi_etk = gtk.Label(self.bilgi)
        self.bharf = gtk.CheckButton("Büyük Harfler")
        self.kharf = gtk.CheckButton("Küçük Harfler")
        self.sayi = gtk.CheckButton("Sayılar")
        self.ozkar = gtk.CheckButton("Özel Karakterler")
        self.uzun_etk = gtk.Label("Karakter Sayısı")
        self.uzun_etk.set_alignment(0.3, 0.5)
        self.uzun_ent = gtk.Entry()
        self.uzun_ent.set_max_length(2)
        self.par = gtk.Label("")
        self.par.set_selectable(True)
        self.par.set_alignment(0.03, 0.5)
        self.uret = gtk.Button("Üret")
        self.uret.connect("clicked", self.par_uret)
        self.cik = gtk.Button("Çık")
        self.cik.connect("clicked", gtk.main_quit)
#        self.resim = gtk.Image()
#        self.resim.set_from_file("/mnt/1000GB/Dokümanlar/Python 2x/PyGtk/PassGenGUI/logo.svg")
        self.tablo = gtk.Table(15, 10, True)


        self.tablo.attach(self.bilgi_etk, 0, 9, 0,3)
        self.tablo.attach(self.bharf, 0, 5, 4, 5)
        self.tablo.attach(self.kharf, 0, 5, 5, 6)
        self.tablo.attach(self.sayi, 0, 5, 6, 7)
        self.tablo.attach(self.ozkar, 0, 5, 7, 8)
        self.tablo.attach(self.uzun_etk, 0, 4, 9, 10)
        self.tablo.attach(self.uzun_ent, 4, 5, 9, 10)
        self.tablo.attach(self.par, 0, 10, 11, 12)
        self.tablo.attach(self.uret, 2, 4, 13, 15)
        self.tablo.attach(self.cik, 5, 7, 13, 15)
#        self.tablo.attach(self.resim, 6, 8, 4, 8)


        self.pncr.add(self.tablo)
        self.pncr.show_all()



    def par_uret(self, arac):

        parola_tumu = []
        parola_ls = []
        paro = []
        parola = ""
        sayilar = range(0, 10)
        kucuk_harfler = range(97, 123)
        buyuk_harfler = range(65, 91)
        ozel_karakterler = ["!", "#", "+", "$", "*", "?", "-", "_"]


        for i in range(0, len(kucuk_harfler)):

            if self.kharf.get_active():
                parola_tumu.append(chr(kucuk_harfler[i]))

            if self.bharf.get_active():
                parola_tumu.append(chr(buyuk_harfler[i]))

            if self.sayi.get_active():
                try:
                    parola_tumu.append(sayilar[i])
                except IndexError:
                    pass

            if self.ozkar.get_active():
                try:
                    parola_tumu.append(ozel_karakterler[i])
                except IndexError:
                    pass


        try:
            uzunluk = int(self.uzun_ent.get_text())
        except ValueError:
            self.par.set_markup("<b>Parolanızın kaç karakter olacağını giriniz.</b>")
            return parola_tumu

        if uzunluk > len(parola_tumu):
            self.par.set_markup("<b>Seçeneklerinize göre, max. %s karakter.</b>" %len(parola_tumu))

            if len(parola_tumu) == 0:
                self.par.set_markup("<b>Hiçbir seçenek seçilmedi!</b>")
        else:
            paro = random.sample(xrange(0, len(parola_tumu)), uzunluk)


            for i in range(0, uzunluk):
                parola_ls.append(parola_tumu[paro[i]])
                parola = parola + str(parola_ls[i])


            self.par.set_markup("<b>%s</b>" %parola)
            del parola_tumu


    def main(self):
        gtk.main()



passgui = PassGenGUI()
passgui.main()
The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

eMKey

İkinci arayüz çalışmam alarm programı. Belirlenen saatte veya belirlenen süre sonunda bir ses dosyası çalıyor.

Bütün alarm sesleri ile program (5.5 mb):
http://ubuntuone.com/p/ZOZ/

Sadece bir alarm sesi ile program (337 kb):
http://ubuntuone.com/p/ZOb/

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require20()

import gtk, time, pygame, gobject, dircache

class AlarmGUI(object):
    def __init__(self):
        self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.win.connect("destroy", gtk.main_quit)
        self.win.set_border_width(5)
        self.win.set_size_request(220, 250)
        self.win.set_resizable(False)
        self.win.set_title("Alarm - GUI")
        self.win.set_icon_from_file("./Icons/logo.svg")

        self.duraklat = "Duraklat"

        self.frame1 = gtk.Frame("Alarm Tipi")
        self.frame2 = gtk.Frame("Zaman Ayarla")
        self.frame3 = gtk.Frame("Alarm Sesi")
        self.frame4 = gtk.Frame("Durum")
        self.frame5 = gtk.Frame()

        self.secim1 = gtk.RadioButton(None, "Alarm saat ...'da çalsın")
        self.secim2 = gtk.RadioButton(self.secim1, "Alarm ... saat sonra çalsın")

        self.combo1 = gtk.ComboBox()
        self.liste1 = gtk.ListStore(str)
        self.hucre1 = gtk.CellRendererText()
        self.combo1.pack_start(self.hucre1)
        self.combo1.add_attribute(self.hucre1, "text", 0)
        self.combo1.set_wrap_width(1)
        for i in range(24):
            if i < 10:
                i = "0" + str(i)
            self.liste1.append([i])
        self.combo1.set_model(self.liste1)
        self.combo1.set_active(0)

        self.combo2 = gtk.ComboBox()
        self.liste2 = gtk.ListStore(str)
        self.hucre2 = gtk.CellRendererText()
        self.combo2.pack_start(self.hucre2)
        self.combo2.add_attribute(self.hucre2, "text", 0)
        self.combo2.set_wrap_width(1)
        for i in range(60):
            if i < 10:
                i = "0" + str(i)
            self.liste2.append([i])
        self.combo2.set_model(self.liste2)
        self.combo2.set_active(0)

        self.combo3 = gtk.ComboBox()
        self.liste3 = gtk.ListStore(str)
        self.hucre3 = gtk.CellRendererText()
        self.combo3.pack_start(self.hucre3)
        self.combo3.add_attribute(self.hucre3, "text", 0)
        self.combo3.set_wrap_width(1)
        for i in range(60):
            if i < 10:
                i = "0" + str(i)
            self.liste3.append([i])
        self.combo3.set_model(self.liste3)
        self.combo3.set_active(0)

        self.combo4 = gtk.ComboBox()
        self.liste4 = gtk.ListStore(str)
        self.hucre4 = gtk.CellRendererText()
        self.combo4.pack_start(self.hucre4)
        self.combo4.add_attribute(self.hucre4, "text", 0)
        self.combo4.set_wrap_width(1)
        alarm_list = dircache.listdir('./Sounds')
        for i in alarm_list:
            self.liste4.append([i])
        self.combo4.set_model(self.liste4)
        self.combo4.set_active(0)

        self.but_kur = gtk.Button("Ayarla")
        self.but_kur.connect("clicked", self.ayarla)

        self.but_cik = gtk.Button("Çık")
        self.but_cik.connect("clicked", gtk.main_quit)

        self.but_cal_res = gtk.Image()
        self.but_cal_res.set_from_file("./Icons/play.png")
        self.but_cal = gtk.Button()
        self.but_cal.add(self.but_cal_res)
        self.but_cal.connect("clicked", self.cal)

        self.but_durakla_res = gtk.Image()
        self.but_durakla_res.set_from_file("./Icons/pause.png")
        self.but_durakla = gtk.Button()
        self.but_durakla.add(self.but_durakla_res)
        self.but_durakla.connect("clicked", self.durakla)

        self.but_dur_res = gtk.Image()
        self.but_dur_res.set_from_file("./Icons/stop.png")
        self.but_dur = gtk.Button()
        self.but_dur.add(self.but_dur_res)
        self.but_dur.connect("clicked", self.dur)

        self.durum_etk = gtk.Label()
        self.frame4.add(self.durum_etk)

        self.vbox1 = gtk.VBox(True, 2)
        self.win.add(self.vbox1)

        self.vbox1.pack_start(self.frame1)
        self.vbox1.pack_start(self.frame2)
        self.vbox1.pack_start(self.frame3)
        self.vbox1.pack_start(self.frame4)
        self.vbox1.pack_start(self.frame5)

        self.vbox2 = gtk.VBox(True, 2)
        self.frame1.add(self.vbox2)

        self.hbox1 = gtk.HBox(True, 2)
        self.frame2.add(self.hbox1)

        self.hbox2 = gtk.HBox(True, 40)
        self.frame5.add(self.hbox2)

        self.hbox3 = gtk.HBox(False, 2)
        self.frame3.add(self.hbox3)

        self.vbox2.pack_start(self.secim1)
        self.vbox2.pack_start(self.secim2)

        self.hbox1.pack_start(self.combo1)
        self.hbox1.pack_start(self.combo2)
        self.hbox1.pack_start(self.combo3)

        self.hbox2.pack_start(self.but_kur)
        self.hbox2.pack_start(self.but_cik)

        self.hbox3.pack_start(self.combo4)
        self.hbox3.pack_start(self.but_cal)
        self.hbox3.pack_start(self.but_durakla)
        self.hbox3.pack_start(self.but_dur)

        self.win.show_all()

    def ayarla(self, arac):
        self.sa = int(self.combo1.get_active_text())
        self.dk = int(self.combo2.get_active_text())
        self.sn = int(self.combo3.get_active_text())

        self.sa_real = int(time.localtime().tm_hour)
        self.dk_real = int(time.localtime().tm_min)
        self.sn_real = int(time.localtime().tm_sec)

        self.sn1 = self.sa * 3600
        self.sn2 = self.dk * 60
        self.sn3 = self.sn + self.sn1 + self.sn2

        self.sn1_real = self.sa_real * 3600
        self.sn2_real = self.dk_real * 60
        self.sn3_real = self.sn_real + self.sn1_real + self.sn2_real

        self.sn_fark = self.sn3 - self.sn3_real

        if self.sn_fark < 0:
            self.sn_fark = (24 * 3600) - (self.sn_fark * -1)

        if self.secim1.get_active():
            self.durum_etk.set_text("Alarm saati: %s: %s: %s " %(self.combo1.get_active_text(), self.combo2.get_active_text(), self.combo3.get_active_text()))
            gobject.timeout_add (self.sn_fark * 1000, self.cal, self)
        else:
            self.durum_etk.set_text("Alarm %s: %s: %s sonra çalacak" %(self.combo1.get_active_text(), self.combo2.get_active_text(), self.combo3.get_active_text()))
            gobject.timeout_add (self.sn3 * 1000, self.cal, self)

    def cal(self, arac):
            freq = 44100
            bitsize = -16
            channels = 2
            buffer = 2048
            pygame.mixer.init(freq, bitsize, channels, buffer)
            pygame.mixer.music.set_volume(1.0)
            pygame.mixer.music.load("./Sounds/%s" %self.combo4.get_active_text())
            pygame.mixer.music.play()
            self.durum_etk.set_text("%s çalınıyor. " %(self.combo4.get_active_text()))

    def durakla(self, arac):
        if self.duraklat == "Duraklat":
            pygame.mixer.music.pause()
            self.duraklat = "Devam"
            self.durum_etk.set_text("%s duraklatıldı. " %(self.combo4.get_active_text()))
        else:
            pygame.mixer.music.unpause()
            self.duraklat = ("Duraklat")
            self.durum_etk.set_text("%s çalınıyor. " %(self.combo4.get_active_text()))

    def dur (self, arac):
        pygame.mixer.music.stop()
        self.durum_etk.set_text("%s durduruldu. " %(self.combo4.get_active_text()))

    def main(self):
        gtk.main()

alarm_baslat = AlarmGUI()
alarm_baslat.main()




The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

hitokiri

#22
Alıntı Yapİkinci arayüz çalışmam alarm programı. Belirlenen saatte veya belirlenen süre sonunda bir ses dosyası çalıyor.
Bu da güzel olmuş ama ben oyumu şifre üreticisinden kullandım ,fantastik şifreler dönemini başlatmamında vakti gelmişti bende şifre üreten koda bi basamak daha ekleyim dedim ,
indirmek için;http://www.mediafire.com/?7ni2id9jegj894f

hitokiri

#23
python ile grep komutu benzeri oldukça basit bir şey:
#!/usr/bin/env python
#! coding:utf-8 -*-
# vim: ts=8:sw=8
import os
class grep():
def __init__(self,op, args):
try:
self.dosya = args[0]
self.arg = args[1]
self.option = op 
except:
return

if os.path.isfile(self.dosya):
self.file = open(self.dosya).read().splitlines()
elif type(self.dosya) == str:
self.file = self.dosya.splitlines()

y = self.arg
for x in self.file:   
if self.option:
for i in y.capitalize(),y.lower(),y.swapcase():
if i in x: self.ekle(x,i)
else:
if  y in x: self.ekle(x,y)
def ekle(self,argv,x):
index =  self.file.index(argv) + 1
xarg =   "\x1b[31m%s\x1b[0m"  %(x)
xarg = argv.replace(x,xarg)
print "%s   %s " % (index,xarg)

from optparse import OptionParser
usage =u" grep [SEÇENEK]...   [DOSYA]...  MASKE" 
parser = OptionParser(usage)
parser.add_option( "-i" ,  dest="i", default=False,action="store_true",
     help= (u"büyük küçük harf duyarlılığı")  )
(op, args) = parser.parse_args()
grep(op.i,args)


Alıntı Yappy@py-desktop:/media/sda1/home/hitokiri/Belgeler$ ./grep.py /usr/share/themes/Ambiance/gtk-2.0/gtkrc list
60      WnckTasklist::fade-overlay-rect = 0
128         listviewheaderstyle    = 1     # 0 = flat, 1 = glassy, 2 = raised
129         listviewstyle          = 2     # 0 = nothing, 1 = dotted 2 = solid
173         #listviewheaderstyle = 0 # 0 = normal, 1 = glassy
648   # appears-as-list mode.
651   # on comboboxes in appears-as-list mode though.
py@py-desktop:/media/sda1/home/hitokiri/Belgeler$ ./grep.py /usr/share/themes/Ambiance/gtk-2.0/gtkrc list -i
60      WnckTasklist::fade-overlay-rect = 0
128         listviewheaderstyle    = 1     # 0 = flat, 1 = glassy, 2 = raised
129         listviewstyle          = 2     # 0 = nothing, 1 = dotted 2 = solid
173         #listviewheaderstyle = 0 # 0 = normal, 1 = glassy
572   widget_class "*.<GtkList>.<GtkButton>"        style      "treeview-header"
573   widget_class "*.<GtkCList>.<GtkButton>"       style      "treeview-header"
648   # appears-as-list mode.
651   # on comboboxes in appears-as-list mode though.
673   # Work around the usage of GtkLabel inside GtkListItems to display text.
685   widget_class "*<GtkListItem>*"          style "fg-is-text-color-workaround"
687   # The same problem also exists for GtkCList and GtkCTree
688   # Only match GtkCList and not the parent widgets, because that would also change the headers.
689   widget_class "*<GtkCList>"          style "fg-is-text-color-workaround"

eMKey

Oyun dünyasına en son hediyem adam asmaca oyunu :)

Program direkt klasörün içindeki hangman.py dosyasından çalıştırılabiir. Menüye eklemek isterseniz;
sudo tar -xjf /dosyanın/yeri/hangman.tar.bz2 -C /opt
sudo mv /opt/hangman/hangman.desktop /usr/share/applications/


Program: http://ubuntuone.com/p/zx9/ (60 kb)
Kodlar: http://paste.pocoo.org/show/414548/
Ekran Görüntüsü:
The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.