Python - Argumen Baris Perintah
Halo, para pelopor yang berhasrat! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia argumen baris perintah di Python. Jangan khawatir jika kamu baru dalam pemrograman; saya akan memandu kamu melalui setiap langkah dengan kesabaran dan perhatian seperti seorang guru kaki lima. Mari kita wujudkan!
Apa itu Argumen Baris Perintah?
Bayangkan jika kamu adalah seorang juru masak, dan bukannya selalu memasak jenis yang sama, kamu ingin dapat mengubah bahan-bahan berdasarkan permintaan pelanggan kamu. Dalam pemrograman, argumen baris perintah seperti permintaan khusus dari pelanggan. Mereka membolehkan kita untuk memberikan program Python kita input yang berbeda saat kita menjalankannya, membuat kode kita lebih fleksibel dan kuat.
Argumen Baris Perintah Python
Di Python, kita dapat mengakses argumen baris perintah dengan mudah menggunakan modul sys
. Mari kita mulai dengan contoh sederhana:
import sys
print("Halo, saya adalah program Python pertama kamu!")
print("Jumlah argumen:", len(sys.argv))
print("Argumen:", str(sys.argv))
Simpan sebagai hello_args.py
dan jalankan dari baris perintah seperti ini:
python hello_args.py arg1 arg2 arg3
Kamu akan melihat output seperti ini:
Halo, saya adalah program Python pertama kamu!
Jumlah argumen: 4
Argumen: ['hello_args.py', 'arg1', 'arg2', 'arg3']
Mari kita pecahkan ini:
-
sys.argv
adalah daftar yang berisi argumen baris perintah. - Item pertama (
sys.argv[0]
) adalah selalu nama skrip itu sendiri. - Item yang lain adalah argumen yang kita lewatkan.
Mengakses Argumen Tertentu
Sekarang, mari kita buat program yang menggunakan argumen ini:
import sys
if len(sys.argv) < 2:
print("Silakan berikan nama kamu sebagai argumen!")
else:
name = sys.argv[1]
print(f"Halo, {name}! Selamat datang di dunia argumen baris perintah!")
Simpan sebagai greet.py
dan jalankan:
python greet.py Alice
Output:
Halo, Alice! Selamat datang di dunia argumen baris perintah!
Jika kamu menjalankannya tanpa argumen:
python greet.py
Output:
Silakan berikan nama kamu sebagai argumen!
Contoh ini menunjukkan bagaimana kita dapat membuat program kita interaktif dan ramah pengguna!
Mengirimkan Argumen Pada Waktu Eksekusi
Mari kita buat contoh yang lebih praktis. Kita akan membuat kalkulator sederhana:
import sys
def calculator(operation, num1, num2):
if operation == 'add':
return num1 + num2
elif operation == 'subtract':
return num1 - num2
elif operation == 'multiply':
return num1 * num2
elif operation == 'divide':
return num1 / num2 if num2 != 0 else "Error: Pembagian oleh nol"
else:
return "Operasi tidak valid"
if len(sys.argv) != 4:
print("Penggunaan: python calculator.py <operation> <num1> <num2>")
else:
operation = sys.argv[1]
try:
num1 = float(sys.argv[2])
num2 = float(sys.argv[3])
result = calculator(operation, num1, num2)
print(f"Hasil: {result}")
except ValueError:
print("Error: Silakan berikan angka yang valid")
Simpan sebagai calculator.py
dan gunakan seperti ini:
python calculator.py add 5 3
Output:
Hasil: 8.0
Contoh kalkulator ini menunjukkan bagaimana kita dapat membuat alat yang kuat yang mengambil input berbeda dan melakukan operasi berbagai.
Modul getopt Python
Untuk antarmuka baris perintah yang lebih kompleks, Python menyediakan modul getopt
. Ini seperti memiliki asisten yang terampil untuk membantu mengurutkan semua pilihan dan argumen yang mungkin diberikan pengguna kamu.
Berikut adalah contoh:
import sys
import getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print('test.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print('test.py -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print('Input file adalah:', inputfile)
print('Output file adalah:', outputfile)
if __name__ == "__main__":
main(sys.argv[1:])
Simpan sebagai file_processor.py
dan jalankan:
python file_processor.py -i input.txt -o output.txt
Output:
Input file adalah: input.txt
Output file adalah: output.txt
Modul getopt
membantu kita menangani pilihan pendek (-i, -o) dan pilihan panjang (--ifile, --ofile), membuat program kita lebih ramah pengguna.
Modul argparse Python
Untuk antarmuka baris perintah yang lebih sophisticated, Python menawarkan modul argparse
. Ini seperti memiliki restoran penuh layanan untuk kebutuhan baris perintah kamu!
Berikut adalah contoh:
import argparse
parser = argparse.ArgumentParser(description='Proses beberapa integer.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='sebuah integer untuk akumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='jumlahkan integer (default: cari maks)')
args = parser.parse_args()
print(args.accumulate(args.integers))
Simpan sebagai integer_processor.py
dan gunakan seperti ini:
python integer_processor.py 1 2 3 4
Output:
4
Atau dengan pilihan --sum:
python integer_processor.py 1 2 3 4 --sum
Output:
10
Modul argparse
secara otomatis menghasilkan pesan bantuan, menangani kesalahan, dan memungkinkan struktur argumen yang lebih kompleks.
Perbandingan Metode
Berikut adalah perbandingan singkat dari metode yang kita diskusikan:
Metode | Kompleksitas | kasus Penggunaan |
---|---|---|
sys.argv | Sederhana | Pengendalian argumen dasar |
getopt | Sedang | Pilihan pendek dan panjang |
argparse | Tinggi | Antarmuka CLI kompleks dengan bantuan otomatis |
Ingat, metode terbaik bergantung pada kebutuhan kamu yang khusus. Mulai dengan sederhana menggunakan sys.argv
, dan saat program kamu menjadi lebih kompleks, pertimbangkan untuk berpindah ke getopt
atau argparse
.
Dalam kesimpulan, argumen baris perintah adalah alat yang kuat dalam toolkit Python kamu. Mereka membolehkan kamu untuk membuat program yang fleksibel dan interaktif yang dapat menyesuaikan dengan input dan kebutuhan pengguna yang berbeda. Sebagai kamu melanjutkan perjalanan Python kamu, kamu akan menemukan banyak cara untuk menggunakan teknik ini untuk membangun perangkat lunak yang menakjubkan. Selamat coding, dan semoga petualangan baris perintah kamu selalu menarik!
Credits: Image by storyset