Skip to main content

Modüller

Python'da modüller, fonksiyonlar, sınıflar ve değişkenler gibi kodlar içeren dosyalardır. Bu modüller, başka bir Python dosyasında kullanılabilir hale getirilmek için içe aktarılır. Modüller, kodun yeniden kullanılabilirliğini artırır ve büyük programların yönetimini kolaylaştırır.

os Modülü

os modülü, işletim sistemiyle ilgili fonksiyonlar sağlar. Dosya ve dizin işlemleri yapmak, işletim sistemini bilgilerini almak gibi işlemler için kullanılır.

import os

Bu komut, os modülünü içe aktarır. Ardından modülün sağladığı fonksiyon ve nitelikler kullanılabilir hale gelir.

dir(os)  # Modülün barındırdığı fonksiyon ve nitelikleri listelemek

['DirEntry', 'F_OK', 'O_APPEND', 'chdir', 'getcwd', 'listdir', 'mkdir', 'rmdir', ...]

Bu komut, os modülünün içerdiği tüm fonksiyon ve niteliklerin bir listesini döndürür.

os.name  # İşletim sistemimizin adını verir

'nt'

Bu komut, çalışılan işletim sisteminin adını döndürür. Örneğin, Windows için 'nt', Unix için 'posix' gibi.

webbrowser Modülü

webbrowser modülü, kullanıcının varsayılan web tarayıcısını kullanarak URL'leri açmasını sağlar.

import webbrowser as br

Bu komut, webbrowser modülünü br takma adı ile içe aktarır.

br.open("www.google.com")

True

Bu komut, kullanıcının varsayılan web tarayıcısında "www.google.com" adresini açar.

math Modülü

math modülü, matematiksel işlemler yapmak için fonksiyonlar ve sabitler sağlar.

import math

Bu komut, math modülünü içe aktarır.

math.factorial(5)

120

Bu komut, 5'in faktöriyelini hesaplar.

datetime Modülü

datetime modülü, tarih ve zaman ile ilgili sınıflar ve fonksiyonlar sağlar.

import datetime

def su_an():
return datetime.datetime.now()

def bugun():
return datetime.date.today()

su_an() fonksiyonu, şu anki tarih ve zamanı döndürürken, bugun() fonksiyonu yalnızca bugünün tarihini döndürür.

su_an()

datetime.datetime(2024, 2, 25, 1, 39, 44, 991908)

bugun()

datetime.date(2024, 2, 25)

Bu komutlar, sırasıyla şu anki tam zamanı ve bugünün tarihini döndürür.

Kendi Modülümüzü Yazalım

Kendi Python modülümüzü oluşturarak, içinde tanımladığımız fonksiyonları başka bir dosyada kullanabiliriz. Örneğin, benim_modulum.py adında bir dosya oluşturup içine selamla ve toplama adında iki fonksiyon yazalım.

from benim_modulum import selamla, toplama

print(selamla("Dünya"))
print(toplama(3, 5))

Merhaba, Dünya! 8

Bu kod, benim_modulum.py adlı dosyadan selamla ve toplama fonksiyonlarını içe aktarır ve bu fonksiyonları kullanarak çıktıları ekrana yazdırır.

Sık Kullanılan Modüller

Random Modülü

random modülü, rastgele sayılar üretmek için kullanılır.

import random

Bu komut, random modülünü içe aktarır.

for i in range(10):
print(random.random()) # 0 ile 1 arasında rastgele bir sayı üretir.

Bu döngü, 0 ile 1 arasında rastgele on sayı üretir ve yazdırır.

for i in range(10):
print(random.uniform(10, 30)) # Belirli bir aralıkta rastgele sayı üretir.

Bu döngü, 10 ile 30 arasında rastgele on sayı üretir ve yazdırır.

for i in range(10):
print(random.randint(1, 5)) # Belirli bir aralıkta rastgele tamsayı üretir.

Bu döngü, 1 ile 5 arasında rastgele on tamsayı üretir ve yazdırır.

liste = ["Pembe", "Sarı", "Kırmızı", "Turuncu"]
print(random.choice(liste)) # Listeden rastgele bir eleman seçer.

Bu kod, verilen listeden rastgele bir eleman seçer ve yazdırır.

Zar Atma Simülasyonu

Zar atma simülasyonu, zarların rastgele sonuçlarını modellemek için kullanılabilir.

zarlar = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}

for i in range(100):
zar = random.randint(1, 6)
zarlar[zar] += 1

Bu kod, her bir zar değeri için 100 kez zar atar ve her değerin kaç kez geldiğini sayar.

for zar in zarlar:
print(f"{zar} gelme olasılığı: {zarlar[zar] / 100}")

Bu kod, her bir zar değerinin gelme olasılığını yüzde olarak yazdırır.

alti_alti = 0
deneme_sayisi = 0

while True:
deneme_sayisi += 1
zar1 = random.randint(1, 6)
zar2 = random.randint(1, 6)
if zar1 == 6 and zar2 == 6:
alti_alti += 1
if alti_alti == 10:
print(f"10 kere 6-6 gelmesi için zarlar {deneme_sayisi} kez atıldı.")
break

Bu kod, iki zarın da 6 gelmesi durumunu on kez yakalayana kadar zar atar ve bu işlemin kaç denemede tamamlandığını yazdırır.

Time Modülü

time modülü, Python programlarında zamanla ilgili işlemleri yapmak için kullanılır. Örneğin, programınızın ne kadar sürede çalıştığını ölçmek veya belirli bir süre bekletmek için bu modülü kullanabilirsiniz.

import time

Bu satır, time modülünü içe aktarır.

zaman = time.time()  # Geçerli zamanın saniye cinsinden değeri.
# Programcıların zamanın başlangıcı olarak kabul ettikleri bir tarih vardır: 1 Ocak 1970
print(zaman)

1708821882.910719

Bu kod, Unix epoch'tan (1 Ocak 1970) itibaren geçen saniye sayısını yazdırır.

Alternatif algoritmalar arasından verimlilik hesabı yaparak bir tanesini seçebiliriz. İşlem süresini ölçmek için time.time() kullanabiliriz.

baslangic = time.time()
liste = []
for i in range(100000):
liste.append(i)
bitis = time.time()
print(bitis - baslangic)

0.019137859344482422

Bu kod, 100000 elemanın listeye eklenme süresini ölçer ve yazdırır.

datetime modülü, tarih ve zamanla ilgili daha fazla işlevsellik sağlar.

import datetime

Bu satır, datetime modülünü içe aktarır.

su_an = datetime.datetime.now()

Bu kod, o anın tarih ve saat bilgisini alır.

su_an

datetime.datetime(2024, 2, 25, 3, 50, 31, 978245)

Bu kod, datetime nesnesi olarak o anki tarih ve saati döndürür.

su_an.year

2024

Bu kod, şu anki yılı döndürür.

su_an.month

2

Bu kod, şu anki ayı döndürür.

su_an.day

25

Bu kod, şu anki günü döndürür.

an = datetime.datetime.now()
tarih = datetime.datetime.strftime(an, '%c')
tarih

'Sun Feb 25 03:52:01 2024'

Bu kod, mevcut tarih ve saat bilgisini belirli bir biçimlendirme dizesine göre formatlar ve yazdırır.

Başka tarih ve saat biçimlendiricileri de kullanılabilir. Örneğin:

datetime.datetime.strftime(an, '%Y')

'2024'

Bu kod, yılın dört haneli tam halini döndürür.

datetime.datetime.strftime(an, '%X')

'03:52:01'

Bu kod, mevcut saati döndürür.

datetime.datetime.strftime(an, '%d')

'25'

Bu kod, mevcut günü döndürür.

Os Modülü

os modülü, işletim sistemiyle ilgili işlemleri gerçekleştirmek için kullanılır. Örneğin, mevcut çalışma dizininizi değiştirmek, yeni klasörler oluşturmak veya mevcut dosyalar hakkında bilgi almak için bu modülü kullanabilirsiniz.

import os

Bu satır, os modülünü içe aktarır.

print(os.getcwd())

C:\Users\gkdem\Desktop\kapsul-ai-egitim

Bu kod, mevcut çalışma dizininin tam yolunu yazdırır.

os.chdir("C:\\Users\\gkdem\\Desktop\\os_modulu")

Bu kod, mevcut çalışma dizinini belirtilen yola değiştirir.

print(os.getcwd())

C:\Users\gkdem\Desktop\os_modulu

Bu kod, yeni çalışma dizininin tam yolunu yazdırır.

print(os.listdir())

[]

Bu kod, mevcut dizindeki dosya ve klasörlerin listesini yazdırır.

print(os.listdir("C:\\Users\\gkdem\\Desktop\\network"))

['1-Introdução en.pdf', '2-Aplicações telemáticas en.pdf', '3-Cablagem estruturada.pdf', '3-Sistema de cablagem.pdf', ...]

Bu kod, belirtilen dizindeki dosya ve klasörlerin listesini yazdırır.

os.mkdir("denemeKlasörü")  # Klasör oluşturma

Bu kod, mevcut dizinde yeni bir klasör oluşturur.

os.makedirs("deneme1/deneme2/deneme3")  # Birden fazla iç içe klasör oluşturma

Bu kod, iç içe klasörler oluşturur.

os.rmdir("denemeKlasörü")  # Klasör silme

Bu kod, belirtilen klasörü siler.

os.removedirs("deneme1/deneme2/deneme3")  # Birden fazla iç içe klasör silme

Bu kod, iç içe klasörleri siler.

os.rename("baslangic.docx", "Deneme.docx")  # Dosya ismini değiştirmek

Bu kod, belirtilen dosyanın adını değiştirir.

print(os.stat("Deneme.docx"))  # Dosya hakkında bilgi alma

os.stat_result(st_mode=33206, st_ino=61361544923149345, st_dev=1176187008, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1708823371, st_mtime=1708823337, st_ctime=1708823337)

Bu kod, belirtilen dosyanın durumu hakkında bilgi verir.

for gecerli_klasor, icindeki_klasorler, icindeki_dosyalar in os.walk(r"C:\Users\gkdem\Desktop\os_modulu"):
print("Geçerli klasör: ", gecerli_klasor)
print("İçindeki klasörler: ", icindeki_klasorler)
print("İçindeki dosyalar: ", icindeki_dosyalar)

Bu kod, belirtilen dizin ve alt dizinlerdeki tüm klasörler ve dosyaları yürür (gezer).

file_path = r'C:\Users\gkdem\Desktop\Figure_1.png'

Bu satır, bir dosya yolunu tanımlar.

if os.path.isfile(file_path):  # Dosyanın var olup olmadığını kontrol etmek
print(f"{file_path} bir dosyadır.")
else:
print(f"{file_path} bir dosya değildir veya mevcut değildir.")

C:\Users\gkdem\Desktop\Figure_1.png bir dosyadır.

Bu kod, belirtilen yolun bir dosya olup olmadığını kontrol eder.

# Dizin ve dosya

adlarını birleştirerek dosya yolu oluşturma
file_path = os.path.join('Users', 'gkdem', 'Documents', 'file.txt')
print("Dosya Yolu:", file_path)

Dosya Yolu: Users\gkdem\Documents\file.txt

Bu kod, belirtilen dizin ve dosya adlarını birleştirerek dosya yolu oluşturur.

Örnek

Aşağıdaki örnekte, belirli bir dizindeki tüm .jpg uzantılı dosyaları bulan bir fonksiyon tanımlanır:

import os

def get_jpg_files(directory):
jpg_files = []
contents = os.listdir(directory)
for item in contents:
item_path = os.path.join(directory, item)
if os.path.isfile(item_path) and item.lower().endswith('.jpg'): # dosya uzantılarını kontrol etmek
jpg_files.append(item_path)
return jpg_files

Bu fonksiyon, belirtilen dizindeki tüm .jpg uzantılı dosyaların yolunu bir liste olarak döndürür.

directory_path = r"C:\Users\gkdem\Desktop\sinek"
jpg_files_list = get_jpg_files(directory_path)
print("Bulunan .jpg uzantılı dosyalar:")
for jpg_file in jpg_files_list:
print(jpg_file)

Bu kod parçası, get_jpg_files fonksiyonunu kullanarak belirtilen dizindeki tüm .jpg dosyalarını bulur ve yazdırır.