argparse ile Komut Satırı Uygulaması Geliştirme

argparse, Python'da komut satırı araçları yapmak için kullanılan standart bir modüldür. Kullanıcıdan argüman almayı, bunları doğrulamayı ve otomatik yardım metni göstermeyi sağlar.

Bir CLI uygulaması yazarken üç adım vardır:

1. ArgumentParser nesnesi oluştur
2. Argümanları tanımla (opsiyonel, zorunlu)
3. Kullanıcı girdisini parse et ve işle

Örneğin, bir dosya işleme aracı düşün. Kullanıcı komut satırında dosya adı, işlem türü ve seçenekleri geçecek. argparse bu girdileri organize eder.

Bu araç, bir metin dosyasını alıp kelime sayısı, karakter sayısı ve satır sayısını gösterecek.

1import argparse
2
3def analyze_text(filename, show_words=False, show_chars=False):
4try:
5with open(filename, 'r', encoding='utf-8') as f:
6content = f.read()
7
8lines = len(content.split('\n'))
9words = len(content.split())
10chars = len(content)
11
12print(f"Dosya: {filename}")
13print(f"Satır sayısı: {lines}")
14
15if show_words:
16print(f"Kelime sayısı: {words}")
17if show_chars:
18print(f"Karakter sayısı: {chars}")
19
20except FileNotFoundError:
21print(f"Hata: '{filename}' dosyası bulunamadı.")
22
23if __name__ == "__main__":
24parser = argparse.ArgumentParser(
25description="Metin dosyasını analiz eder ve istatistik gösterir."
26)
27
28parser.add_argument(
29'dosya',
30help="Analiz edilecek metin dosyasının adı"
31)
32parser.add_argument(
33'-w', '--kelimeler',
34action='store_true',
35help="Kelime sayısını göster"
36)
37parser.add_argument(
38'-c', '--karakterler',
39action='store_true',
40help="Karakter sayısını göster"
41)
42
43args = parser.parse_args()
44analyze_text(args.dosya, args.kelimeler, args.karakterler)

Önce bir test dosyası oluştur:

1echo "Merhaba dünya. Bu bir test dosyasıdır." > test.txt

Sonra aracı çalıştır:

1python analiz.py test.txt

Çıktı:
```
Dosya: test.txt
Satır sayısı: 1
```

Seçeneklerle:

1python analiz.py test.txt -w -c

Çıktı:
```
Dosya: test.txt
Satır sayısı: 1
Kelime sayısı: 8
Karakter sayısı: 42
```

Yardım görmek için:

1python analiz.py -h

`add_argument()` ile argüman eklerken, pozisyonel argümanlar (dosya adı gibi) zorunludur. Çizgi ile başlayanlar (-w, --kelimeler) opsiyoneldir. `action='store_true'` kullanıldığında, bayrak belirtilirse True değer alır. `help` parametresi otomatik yardım metnini oluşturur.

argparse, geçersiz argüman verildiğinde hata mesajı gösterir ve programı durdurur. Bu, kullanıcı hatasını kontrol etmeyi kolaylaştırır.

konu hakkında tepkinizi verebilirsiniz