Bagaimana cara saya memiliki skrip Python yang a) dapat menerima input pengguna dan bagaimana cara membuatnya b) membaca dalam argumen jika dijalankan dari baris perintah?
python
input
command-line-arguments
Teifion
sumber
sumber
argparse
bukannyaoptparse
.Jawaban:
Untuk membaca masukan pengguna Anda dapat mencoba dengan
cmd
modul untuk dengan mudah menciptakan garis interpreter perintah mini (dengan bantuan teks dan autocompletion) danraw_input
(input
untuk Python 3 +) untuk membaca baris teks dari pengguna.Input baris perintah ada di
sys.argv
. Coba ini di skrip Anda:Ada dua modul untuk opsi baris perintah parsing:
(ditinggalkan sejak Python 2.7, gunakanoptparse
argparse
sebagai gantinya) dangetopt
. Jika Anda hanya ingin memasukkan file ke skrip Anda, lihatlah kekuatanfileinput
.The Python referensi perpustakaan adalah teman Anda.
sumber
raw_input
diubah namanya menjadiinput
dalam Python 3.x - dokumentasi di siniAtau untuk Python 3:
sumber
raw_input
, ini adalah fungsi bawaan.raw_input
tidak lagi tersedia di Python 3.x. Tapiraw_input
diganti namanyainput
, jadi fungsi yang sama ada.Dokumentasi perubahan
sumber
import fileinput result=[] for line in fileinput.input(): result.append(line)
Cara terbaik untuk memproses argumen baris perintah adalah
argparse
modul.Gunakan
raw_input()
untuk mendapatkan input pengguna. Jika Anda mengimpor,readline module
pengguna Anda akan memiliki pengeditan garis dan riwayat.sumber
Berhati-hatilah untuk tidak menggunakan
input
fungsi ini, kecuali Anda tahu apa yang Anda lakukan. Tidak sepertiraw_input
,input
akan menerima ekspresi python, jadi itu sepertieval
sumber
Program sederhana ini membantu Anda dalam memahami cara memberi makan input pengguna dari baris perintah dan untuk menunjukkan bantuan saat melewati argumen yang tidak valid.
1) Untuk menemukan akar kuadrat dari 5
2) Melewati argumen yang tidak valid selain dari angka
sumber
Gunakan 'raw_input' untuk input dari konsol / terminal.
jika Anda hanya ingin argumen baris perintah seperti nama file atau sesuatu misalnya
maka Anda dapat menggunakan sys.argv ...
sys.argv adalah daftar di mana 0 adalah nama program, jadi dalam contoh di atas sys.argv [1] adalah "file_name.txt"
Jika Anda ingin memiliki opsi baris perintah penuh gunakan modul optparse.
Pev
sumber
Jika Anda menjalankan Python <2.7, Anda perlu optparse , yang seperti dijelaskan oleh doc akan membuat antarmuka ke argumen baris perintah yang dipanggil saat aplikasi Anda dijalankan.
Namun, dalam Python ≥2.7, optparse telah ditinggalkan, dan diganti dengan argparse seperti yang ditunjukkan di atas. Contoh cepat dari dokumen ...
sumber
Sebagai Python
3.22.7, sekarang ada argparse untuk memproses argumen baris perintah.sumber
Jika ini versi 3.x maka cukup gunakan:
Misalnya, Anda ingin memasukkan 8:
x akan sama dengan 8 tetapi itu akan menjadi string kecuali jika Anda mendefinisikannya sebaliknya.
Jadi, Anda dapat menggunakan perintah convert, seperti:
sumber
Dengan Python 2:
Dengan Python 3:
sumber
sumber