Resim

Python sys Modülü

Python sys Modülü: Yorumlayıcı ve Çalışma Zamanı Yönetimi

Giriş: sys Modülü Nedir?

sys (System) modülü, Python yorumlayıcısı ile doğrudan etkileşim kuran fonksiyonlar ve değişkenler sağlar. Bu modül, programın çalışma ortamı hakkında bilgi almak, komut satırı argümanlarını işlemek, programın çıkışını kontrol etmek ve iç hataları yönetmek için hayati öneme sahiptir.

import sys

1. Çalışma Ortamı Bilgileri

sys modülü, programınızın hangi ortamda çalıştığı hakkında kritik bilgileri sunar.

ÖğeAçıklamaKullanım Amacı
sys.versionPython yorumlayıcısının tam sürüm dizesini döndürür.Programın doğru Python sürümünde çalışıp çalışmadığını kontrol etme.
sys.platformProgramın çalıştığı platformu (İşletim Sistemini) tanımlayan dizeyi döndürür (Örn: 'linux', 'win32', 'darwin').Platforma özgü kodları koşullu olarak çalıştırma.
sys.pathModüllerin içe aktarılırken arandığı dizinlerin listesi.Kendi özel modül klasörlerinizi Python'a tanıtma.
sys.maxsizeBir Python tam sayısının alabileceği en büyük değeri verir.Sistem mimarisi (32-bit vs. 64-bit) hakkında bilgi edinme.

Örnek: Modül Arama Yolunu Görme

# Hangi dizinlerde modül aranıyor?
print("Modül Arama Yolları:")
for path in sys.path:
    print(f"- {path}")

Kendiniz Deneyebilirsiniz:

2. Komut Satırı Argümanları: sys.argv

Kullanıcılar bir Python programını terminalden çalıştırırken, programa komut satırı argümanları (girdileri) geçirebilirler. Bu girdileri okumanın standart yolu sys.argv listesidir.

  • sys.argv her zaman bir listedir.

  • İlk öğe (sys.argv[0]) her zaman çalıştırılan Python dosyasının adıdır.

# Terminal Komutu: python program.py veri.txt -c 10
import sys

print(f"Program Adı: {sys.argv[0]}") 

if len(sys.argv) > 1:
    print(f"Birinci Argüman (Dosya): {sys.argv[1]}")#Çıktı: veri.txt
    print(f"İkinci Argüman (Parametre): {sys.argv[2]}") # Çıktı: -c 
    print(f"Üçüncü Argüman (Değer): {sys.argv[3]}") # Çıktı: 10

Kendiniz Deneyebilirsiniz:

3. Giriş/Çıkış Akışlarını Yönetme

sys modülü, Python'ın standart giriş, standart çıkış ve standart hata akışlarını temsil eden dosya benzeri objelere sahiptir.

ObjeAçıklamaKarşılığı
sys.stdinStandart Giriş (Kullanıcı girdisi).input() fonksiyonunun kullandığı kaynak.
sys.stdoutStandart Çıkış (Normal program çıktısı).print() fonksiyonunun varsayılan hedefi.
sys.stderrStandart Hata Çıkışı (Hata mesajları).Hataların ve istisnaların yazıldığı hedef.

Örnek: Çıktıyı Farklı Bir Yere Yönlendirme

print() fonksiyonu varsayılan olarak sys.stdout'a yazar. Bu akışı değiştirerek çıktıyı bir dosyaya yönlendirebiliriz.

import sys

# Normalde print, stdout'a yazar.
print("Bu normal çıktıdır.") 

# Hata akışına yazma (loglama için kullanışlıdır)
sys.stderr.write("UYARI: Bu bir hata veya uyarı mesajıdır.\n")

Kendiniz Deneyebilirsiniz:

4. Program Kontrolü ve Çıkış

Metot/ÖğeAçıklama
sys.exit(exit_code)Programın çalışmasını hemen sonlandırır. exit_code (çıkış kodu) işletim sistemine programın başarı durumunu bildirir.
sys.getsizeof(object)Bir objenin bellekte kapladığı alanı bayt cinsinden döndürür.
sys.exc_info()Yakalanan hatanın tipi, değeri ve traceback (izleme) bilgilerini içeren tuple döndürür. (Gelişmiş hata yönetiminde kullanılır.)

Örnek: Başarısız Program Sonlandırma

import sys

def dosya_isle():
    try:
        # Hata olabilecek işlem
        open("kritik_dosya.txt")
    except FileNotFoundError:
        print("HATA: Dosya bulunamadı.")
        # Programı hata kodu 1 ile sonlandır (Başarısız)
        sys.exit(1) 
    
    # Program başarılıysa normal şekilde devam eder
    print("İşlem başarıyla tamamlandı.")
# dosya_isle()

sys modülü, Python yorumlayıcısının kalbinde yer alır. Programınızın dış dünya ile etkileşimini, özellikle komut satırı araçları oluştururken ve farklı ortamlarda sorun giderme yaparken, sys modülü bilgisi kritik bir avantaj sağlar.

Kendiniz Deneyebilirsiniz:

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?