Saya ingin mencatat bahwa jawaban sebelumnya membuat banyak asumsi tentang pengetahuan pengguna. Jawaban ini mencoba menjawab pertanyaan di tingkat tutorial yang lebih.
Untuk setiap permintaan Python, sys.argvsecara otomatis daftar string yang mewakili argumen (dipisahkan oleh spasi) pada baris perintah. Nama ini berasal dari konvensi pemrograman C di mana argv dan argc mewakili argumen baris perintah.
Anda akan ingin mempelajari lebih lanjut tentang daftar dan string saat Anda membiasakan diri dengan Python, tetapi sementara itu, berikut adalah beberapa hal yang perlu diketahui.
Anda cukup membuat skrip yang mencetak argumen saat direpresentasikan. Ini juga mencetak jumlah argumen, menggunakan lenfungsi pada daftar.
from __future__ import print_function
import sys
print(sys.argv, len(sys.argv))
Script membutuhkan Python 2.6 atau yang lebih baru. Jika Anda memanggil skrip ini print_args.py, Anda dapat menjalankannya dengan berbagai argumen untuk melihat apa yang terjadi.
> python print_args.py
['print_args.py'] 1
> python print_args.py foo and bar
['print_args.py', 'foo', 'and', 'bar'] 4
> python print_args.py "foo and bar"
['print_args.py', 'foo and bar'] 2
> python print_args.py "foo and bar" and baz
['print_args.py', 'foo and bar', 'and', 'baz'] 4
Seperti yang Anda lihat, argumen baris perintah menyertakan nama skrip tetapi bukan nama juru bahasa. Dalam pengertian ini, Python memperlakukan skrip sebagai executable. Jika Anda perlu tahu nama yang dapat dieksekusi (python dalam kasus ini), Anda dapat menggunakan sys.executable.
Anda dapat melihat dari contoh-contoh bahwa dimungkinkan untuk menerima argumen yang berisi spasi jika pengguna memanggil skrip dengan argumen yang di-enkapsulasi dalam tanda kutip, jadi yang Anda dapatkan adalah daftar argumen yang disediakan oleh pengguna.
Sekarang dalam kode Python Anda, Anda dapat menggunakan daftar string ini sebagai input untuk program Anda. Karena daftar diindeks oleh bilangan bulat berbasis nol, Anda bisa mendapatkan masing-masing item menggunakan sintaksis daftar [0]. Misalnya, untuk mendapatkan nama skrip:
script_name = sys.argv[0] # this will always work.
Meski menarik, Anda jarang perlu tahu nama skrip Anda. Untuk mendapatkan argumen pertama setelah skrip untuk nama file, Anda bisa melakukan hal berikut:
filename = sys.argv[1]
Ini adalah penggunaan yang sangat umum, tetapi perhatikan bahwa itu akan gagal dengan IndexError jika tidak ada argumen yang diberikan.
Selain itu, Python memungkinkan Anda referensi sepotong daftar, jadi untuk mendapatkan daftar lain hanya argumen yang disediakan pengguna (tetapi tanpa nama skrip), Anda dapat melakukan
user_args = sys.argv[1:] # get everything after the script name
Selain itu, Python memungkinkan Anda untuk menetapkan urutan item (termasuk daftar) ke nama variabel. Jadi jika Anda mengharapkan pengguna untuk selalu menyediakan dua argumen, Anda dapat menetapkan argumen tersebut (sebagai string) ke dua variabel:
user_args = sys.argv[1:]
fun, games = user_args # len(user_args) had better be 2
Jadi, untuk menjawab pertanyaan spesifik Anda, sys.argv[1]sajikan argumen baris perintah pertama (sebagai a string) yang disediakan untuk skrip yang dimaksud. Ini tidak akan meminta input, tetapi akan gagal dengan IndexError jika tidak ada argumen yang disediakan pada baris perintah mengikuti nama skrip.