Argparse Nasıl Kullanılır

Merhaba, argparse öğrenmek için bir program yapmayı denedim. argparse kullanımının mantığını anlasam da bunu kodlarıma uygulayamadım. Yapmak istediğim tam olarak şu; argparse ile terminalden ls ve pwd komutları girilecek (bildiğiniz üzere ls dosya/dizinleri gösterir, pwd ise bulunulan dizini). subprocecess ile bu komutlar işlenecek ekrana çıktı verecek. Arada da f-string ile “ls/pwd komutunu girdiniz” gibisinden bir çıktı verecek. Bunu nasıl yaparım? Kodlarımı ise şöyle:

import argparse
import subprocess

parser = argparse.ArgumentParser(prog=“Dosya/Dizin Listesi”)
parser.add_argument(“-ls”, “–liste-stili”, type=str, help=“ls komutu kullanın”)
print(f"Dosyalar listeleniyor. {ls} komutunu girdiniz.“)
parser.add_argument(”-pwd", “–hangi-diizndeyim”, help=“pwd komutunu kullanın”)
print(f"Bulunduğunuz dizin görüntüleniyor. {pwd}")
parser.parse_args()

parser.print_help()

subprocess.call(f"ls", shell=True)
subprocess.call(f"pwd", shell=True)

Şöyle yapabilirsiniz:

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-

import sys
import argparse
import subprocess


if __name__ == "__main__":
    if len(sys.argv) == 1 or sys.argv[1] == "-h":
        parser = argparse.ArgumentParser(prog="Dosya/Dizin Listesi")
        parser.add_argument("-ls", help="ls komutu kullanın")
        parser.add_argument("-pwd", help="pwd komutunu kullanın")
        parser.print_help()
    elif len(sys.argv) == 2:
        if sys.argv[1] == "-ls":
            print("ls komutunu girdiniz. Dosyalar listeleniyor.")
            subprocess.call("ls", shell=True)
        elif sys.argv[1] == "-pwd":
            print(
                "pwd komutunu girdiniz. "
                "Bulunduğunuz dizin görüntüleniyor."
            )
            subprocess.call("pwd", shell=True)
2 Beğeni

Böyle de yapabilirsiniz:

import argparse
import subprocess
       

parser = argparse.ArgumentParser(prog="Dosya/Dizin Listesi")

parser.add_argument('-ls', action='store_true', help="ls komutu kullanın")
parser.add_argument('-pwd', action='store_true', help="pwd komutunu kullanın")

args = parser.parse_args()

if args.ls:
    subprocess.call("ls", shell=True)
elif args.pwd:
    subprocess.call("pwd", shell=True)
else:
    parser.print_help()
1 Beğeni