[Python] Ufak Tefek Fonksiyonlar
-
bazı şeyleri tekrar tekrar uzun uzadıya yazmak istemediğim için ufaktan kendi fonksiyonlarımı yazmaya başladım.
belki başkalarının da işine yarar düşüncesiyle paylaşalım, ortam oluşturalım istedim.
-
Fonksiyon tanımlama örneği:
def fonksiyon(parametre1, parametre2): print parametre1,parametre2 def fonksiyon2(): print "merhaba gotu boklu"
Fonksiyon kullanım örnekleri:
fonksiyon("Kekeme tercuman","is basinda") fonksiyon2()
Sayfanın HTML kodunu alma:
def html_kodunu_al(url): import urllib2 return(urllib2.urlopen(url).read()) html_kodunu_al("http://tahribat.com")
Program çalıştırma:
def program_calistir(run) import os os.system(run) program_calistir("notepad.exe")
Anlık tarihi veren (YIL-AY-GÜN-SAAT-DAKİKA-SANİYE):
def tarih_al(): import datetime now = datetime.datetime.now() return(now.strftime("%Y-%m-%d-%H-%M-%S")) print tarih_al()
Log tutma (tarihli şekilde):
def log_olustur(dosya_adi,yazi): import datetime now = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") with open (dosya_adi, 'a') as f: f.write (now+" "+yazi+'\n') log_olustur("log.txt","Program baslatildi")
Youtube playlist'in tüm linklerini almak:
def get_youtube_playlist(url): import urllib2,re output = "" data = urllib2.urlopen(url).read().replace("'", '"') s = re.findall(r'data-video-id="(.*?)"', data); for x in range(0, len(s)): if output != "": output = output + "\n" output = output + "http://youtube.com/watch?v=" + s[x] return(output) print get_youtube_playlist("http://www.youtube.com/watch?v=_U-tLn6Acno&list=PLPPCjdJO1OwHtxRldCRTNMhhe1BNkNoZd")
Hafızaya alınan metni çağırma:
def get_clipboard(): from Tkinter import Tk return(Tk().clipboard_get()) print get_clipboard()
Gereksiz satırları (boş satırlar) sil:
def gereksiz_satir_sil(satirlar): import re return( re.sub(r'(^[\r\n]*)|([\r\n]*\Z)','',re.sub(r'([\r\n]+)+',r'\n',satirlar)) ) print gereksiz_satir_sil ("\nsatir1\n\n\n\n\nsatir2\n")
Yandex.Drive dosyasının ismini alma:
def get_yandex_title(url): EM_DASH = u'\u2014' try: import urllib2, re py = 2 except: import urllib.request, re py = 3 if py == 2: data = urllib2.urlopen(url).read().decode('utf-8') ob = re.search("<title>(.*)</title>", data) return ob.group(1).split(" "+EM_DASH)[0] if py == 3: data = str(urllib.request.urlopen(url).read(),'utf-8') ob = re.search("<title>(.*)</title>", data) return ob.group(1).split(" "+EM_DASH)[0] print(get_yandex_title("https://disk.yandex.com.tr/public/?hash=yVwUovtPATev7A%2BbVUn5lHFJx94ZVTHbZLLT2isblNw%3D"))
Programın kurulu olup olmadığını kontrol et (daha ziyade linux için, path'leri kontrol eder)
def which(program): import os def is_exe(fpath): return os.path.isfile(fpath) and os.access(fpath, os.X_OK) fpath, fname = os.path.split(program) if fpath: if is_exe(program): return program else: for path in os.environ["PATH"].split(os.pathsep): path = path.strip('"') exe_file = os.path.join(path, program) if is_exe(exe_file): return exe_file return None if which('nano'): print('nano kurulu') if which('cmd.exe'): print('cmd.exe kurulu')
Random sayı üreten kod:
def random_sayi(alt,ust): import random return( random.randrange(alt,ust) ) print (random_sayi(1,10))
.
-
geyet güzel yapmışsın, takipdeyim konuyu dağıtmadan güzel bir arşiv ortaya çıkabilir.
-
Fonksiyon her çağrıldığında kütüphaneleri tekrar import etmek bir porblem teşkil etmiyor mu?
-
KrypT bunu yazdı
Fonksiyon her çağrıldığında kütüphaneleri tekrar import etmek bir porblem teşkil etmiyor mu?
bunu ben de düşündüm, tek problemi anlık ram kullanımı artıp tekrar azalacaktır diye düşünüyorum teoride.
ya mantığını biliyorsan zaten al importu başa koy, ama böyle de çok farkedeceğini sanmam sadece biraz performans düşüklüğü olabilir
büyük projelerde, ufak tefek şeyde no problemo
edit: demek istediğin tekrar tekrar çağırınca hata verir mi? ise vereceğini sanmıyorum çünkü
fonksiyonların içinde kullanılan/yaratılan şeyler fonksiyon bitince siliniyor olması lazım(local)
-----
ayrıca başka kişilerden de katılım bekliyorum güzel bir havuz oluşturabiliriz
YekteranBaymedir tarafından 24/Eki/13 18:29 tarihinde düzenlenmiştir -
Takipteyim.
-
Helal olsun hocam diğer müritlerde buradan kendi fonksiyonlarına paylaşırsa tadından yinmez.
Birazda autoit ile ilgili paylaşım yapsan iyi olacak :)
-
Twitter bunu yazdı
Helal olsun hocam diğer müritlerde buradan kendi fonksiyonlarına paylaşırsa tadından yinmez.
Birazda autoit ile ilgili paylaşım yapsan iyi olacak :)
hacı autoit diğer diller gibi değil, yardım dosyası aşırı sağlam (ingilizcen var ise)
yardım dosyasını hatim etsen çoğu yerde takılmazsın, ben başka bi dilde regex öğrenmeye kalksam hayatta öğrenemezdim.
ayrıca autoit forumlarında da biraz takılsan çok güzel kodlar / konular / fikirler var.
autoit'i ne için öğrenmek istiyorsun bilmiyorum ama daha sağlam dillere yönelmeni öneririm.
ben autoit'i adı üstünde işlerimi otomatikleştirmek için kullanıyorum hobi amaçlı artık.
python'a yönelmemin sebebi linux'e de aşırı ilgi duyuyorum server'lar falan.
bi python script'i yaz her yerde çalışsın, php server'a entegre ederek çalış veya git direk python ile websitesi tasarla :)
-
up olsun, piton bilenleri konuya davet ediyorum
-
KrypT bunu yazdı
Fonksiyon her çağrıldığında kütüphaneleri tekrar import etmek bir porblem teşkil etmiyor mu?
başka bir şey ararken tesadüf eseri sorunun yanıtını buldum, buyrunuz:
What Does Python Do to Import a Module?
When Python imports a module, it first checks the module registry (sys.modules) to see if the module is already imported. If that’s the case, Python uses the existing module object as is.
Otherwise, Python does something like this:
- Create a new, empty module object (this is essentially a dictionary)
- Insert that module object in the sys.modules dictionary
- Load the module code object (if necessary, compile the module first)
- Execute the module code object in the new module’s namespace. All variables assigned by the code will be available via the module object.
This means that it’s fairly cheap to import an already imported module; Python just has to look the module name up in a dictionary.
-
up olsun katılım bekliyorum