Python sys.argv ile basit bir CLI uygulaması

ogzcode

Oğuzhan Güç

Posted on February 20, 2023

Python sys.argv ile basit bir CLI uygulaması

Merhaba
Bu yazıda size Python un sys.argv() komutu ile komut satırı arayüzünden nasıl kullanıcı girdisi alabileceğinizi anlatmaya çalışacağım.
Yazıya başlamadan önce komut satırı arayüzünden biraz bahsetmek istiyorum.

Komut Satırı Arayüzü(CLI)

Komut Satırı Arayüzü (CLI), metin tabanlı bir düzenleme ortamıdır.Bilgisayarla etkileşim kurmak ve programların yüklenmesi ve programlarla çalışılması dahil olmak üzere çok sayıda işlemi gerçekleştirmek için belirtilen komutları kullanır.

Her işletim sistemi yerleşik bir komut istemi ile birlikte gelir.
Nodejs, Anaconda, Git ve benzeri bazı uygulama paketleri de kendi
komut istemleriyle birlikte gelir.
CLI farklı platformlar veya paketler arasında farklı adlar taşısa da,amacı aynı kalır: komutlar olarak bilinen metin tabanlı talimatları kullanarak yazılım paketi veya bilgisayar sistemiyle özgürce etkileşim kurmanızı sağlamak.

Yani, CLI bir programlama dili değil, bir araçtır.CLI(Command Line Interface) ile işletim sistemi komut satırınız,terminaliniz veya konsolunuz aracılığıyla bir uygulama veya programla etkileşim kurabilirsiniz.

CLI kullanımı

Bu bilgiler ışığında hemen CLI yi kullanmaya başlayalım.Ben bu yazı kapsamında Linux kullanıyorum ve komutları da bu platform çerçevesinde yazacağım.Menü panelinden Uçbirimini açıyoruz ve ardından şu komutları yazıyoruz.

mkdir first-cli
cd first-cli
code .
Enter fullscreen mode Exit fullscreen mode

mkdir ile bir dosya oluşturduk ve cd ile de dosyanın içerisine giriş yaptık.VS Code sisteminizde yüklü ise code . komutu ile dosyayı VS Code ile açabilirsiniz.main.py adında bir Python dosyası oluşturuyoruz ve şu kodu içerisine yazıyoruz.

print("Hello World")
Enter fullscreen mode Exit fullscreen mode

Ardından tekrar uçbirime gelerek python dosyasını çalıştırıyoruz:

$ python3 main.py
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Hello World
Enter fullscreen mode Exit fullscreen mode

Linux de komut satırını kısa ve öz bir şekilde kullandık şimdi yazının asıl konusuna geçelim.

sys.argv

Bu komut Python ile yerleşik gelen sys kütüphanesinde bulunan değişken ve işlevlerden bir tanesidir.Amacı komut satırındaki kullanıcı girdisini toplamak.Peki bu ne demek?

Yukarıda hatırlarsanız python dosyasını çalıştırmak için şöyle bir komut yazmıştık.

$ python3 main.py
Enter fullscreen mode Exit fullscreen mode

Peki bu komutun yanına bir şeyler daha yazalım ve ne gibi bir çıktı alacağımızı görelim.

$ python3 main.py Fener sen çok yaşa
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Hello World
Enter fullscreen mode Exit fullscreen mode

Gördüğünüz gibi sonradan yaptığımız eklemenin çıktıya herhangi bir etkisi yok.Ama biz onu yazdırmak istiyoruz işte bu durumda
sys.argv imdadımıza yetişiyor.Hemen nasıl kullanıldığına bakalım.
Python dosyamıza şu kodu yazalım ve tekrar çalıştıralım.

import sys

print("Hello World")
print(sys.argv)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

Hello World
['main.py', 'Fener sen çok yaşa']
Enter fullscreen mode Exit fullscreen mode

Çıktının ikinci satırına baktığımızda aslında istediğimizi kısmen elde ettik.Burada listenin ilk elemanı her zaman çalıştırdığımız dosyanın adıdır.Ve ardından gelenler ise bizim eklediğim ekstra kodlardır.Bu kodların tamamına şu şekilde erişebilirsiniz veya liste erişim yöntemlerini kullanabilirsiniz.

argv = sys.argv[1:]
Enter fullscreen mode Exit fullscreen mode

Çıktı:

['Fener sen çok yaşa']
Enter fullscreen mode Exit fullscreen mode

sys.argv nasıl kullanacağımızı öğrendiğimize göre şimdi küçük bir uygulama yapalım.

Asal Sayı Uygulaması

Bu uygulama basit bir şekilde şunu gerçekleştirecek:

  • Komut arayüzünden bir sayı alacak.
  • Bu sayının asal olup olmadığını kontrol edecek.
  • Eğer birden fazla sayı veya farklı karakter girilmiş ise hata verecek.
import sys

def is_prime(number):
    for n in range(2, int(number ** 0.5) + 1):
        if number % n == 0:
            return "Sayı Asal Değildir"

    return "Sayı Asaldır"

argv = sys.argv

if len(argv) > 2:
    print("Hata! Bir adet sayı giriniz...")
else:
    try:
        number = int(argv[1])
        print(is_prime(number))
    except ValueError:
        print("Sadece sayı giriniz...")

Enter fullscreen mode Exit fullscreen mode

Örnek Girdiler:

$ python3 main.py 12
Sayı Asal Değildir
$ python3 main.py 3
Sayı Asaldır
Enter fullscreen mode Exit fullscreen mode

Yazının sonuna geldik umarım faydalı olmuştur.

Okuduğunuz ve vakit ayırdığınız için teşekkür ederim.
Bana ulaşmak için aşağıdaki adresleri kullanabilirsiniz.

Bir başka yazıda görüşmek üzere.

💖 💪 🙅 🚩
ogzcode
Oğuzhan Güç

Posted on February 20, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related