marfia
Haziran 24, 2020, 5:21öö
1
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