Python mengonversi sys argv ke string

Bagaimana jika kita ingin meneruskan informasi ke program Python kita untuk mengubah cara kerjanya?

Melewati argumen baris perintah

Saat Anda menjalankan program dari , Anda dapat meneruskan ke program tersebut

Di sini kami memiliki program yang disebut $ python3 greet.py Trey Hello world 3

Di sini kami memanggil program ini

$ python3 greet.py Hello world _

Argumen fungsi vs argumen baris perintah

Kata "argumen" adalah istilah yang dimuat

Di Python, kami memiliki argumen fungsi yang merupakan input ke suatu fungsi. Tapi argumen baris perintah adalah masukan untuk seluruh program

Jadi argumen fungsi dan argumen baris perintah tidak terlalu terkait, kecuali bahwa keduanya merupakan input ke dalam sesuatu

Python menerima argumen baris perintah apa pun yang kami berikan

Menurut Anda apa yang akan terjadi jika kita memberikan argumen ke program $ python3 greet.py Trey Hello world 3 kita, saat kita menjalankannya melalui Python?

Program $ python3 greet.py Trey Hello world _3 kami tidak menggunakan argumen baris perintah sama sekali. Itu hanya satu baris kode

Jadi apa tebakanmu?

Ketika kita menjalankan program $ python3 greet.py Trey Hello world 3 ini dengan argumen $ python3 greet.py Trey Hello world 9 kita melihat $ python3 greet.py Trey Hello world 6 dicetak

$ python3 greet.py Trey Hello world

Itu sedikit aneh

Python mengabaikan argumen apa pun yang kami berikan ke program ini. Python menyimpan semua argumen yang kita berikan, tetapi tidak melakukan apa pun dengan argumen tersebut. terserah kita (pelaksana program ini) untuk melakukan sesuatu dengan mereka

Di mana argumen baris perintah disimpan?

Python menyimpan argumen baris perintah di modul import sys print(sys.argv) print("Hello world") 1 di dalam daftar yang disebut

import sys print(sys.argv) print("Hello world")

Daftar import sys print(sys.argv) print("Hello world") _3 memiliki semua argumen yang diteruskan ke program Python kita

$ python3 greet.py Trey ['greet.py', 'Trey'] Hello world

Daftar import sys print(sys.argv) print("Hello world") _3 kami di sini memiliki dua hal di dalamnya, nama program kami dan argumen yang kami sampaikan

$ python3 greet.py Trey ['greet.py', 'Trey']

Hal pertama dalam import sys print(sys.argv) print("Hello world") _3 akan selalu menjadi nama program kita

Jika kami ingin mengambil argumen setelah nama program kami, kami dapat membaca item kedua (indeks import sys print(sys.argv) print("Hello world") 6) dari import sys print(sys.argv) print("Hello world") 3

import sys print("Hello", sys.argv[1])

Kami berasumsi bahwa kami mendapatkan argumen yang diteruskan dan kami mencetak argumen itu

$ python3 greet.py Trey Hello Trey $ python3 greet.py Carol Hello Carol

Jika saya memberikan lebih dari satu argumen, program kami saat ini mengabaikan semuanya setelah argumen pertama itu

$ python3 greet.py Trey Hunner Hello Trey

Bagaimana jika kita menyampaikan terlalu sedikit argumen?

$ python3 greet.py Traceback (most recent call last): File "/home/trey/greet.py", line 3, in print("Hello", sys.argv[1]) IndexError: list index out of range

Jika kita memberikan dua argumen, kita akan mendapatkan import sys print(sys.argv) print("Hello world") 8 (karena import sys print(sys.argv) print("Hello world") 3 tidak memiliki indeks import sys print(sys.argv) print("Hello world") 6 dalam kasus ini)

Memproses import sys print(sys.argv) print("Hello world") _3 secara manual adalah sesuatu yang seharusnya hanya Anda lakukan untuk program Python yang sangat sederhana. program yang tidak memerlukan pemrosesan argumen baris perintah yang rumit dan idealnya hanya melakukan ini untuk program yang hanya untuk Anda gunakan

Python menyediakan semua argumen baris perintah sebagai string

Mari kita lihat contoh lain. Di sini kami memiliki program yang disebut $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 2

import sys program, x, y = sys.argv print(x + y)

Program ini mengambil import sys print(sys.argv) print("Hello world") _3 dan membongkarnya menjadi tiga variabel. nama program, dan dua argumen apa pun yang diberikan setelah itu

Kemudian menambahkan argumen tersebut bersama-sama dan mencetaknya

Apa yang harus kita lihat ketika kita menjalankan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 2 dengan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 5 dan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 6?

Coba tebak

6?

5?

100?

Inilah yang kami lihat saat kami menjalankan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 2 dengan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 5 dan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 6

Aneh, bukan?

Jika kita $ python3 greet.py Trey ['greet.py', 'Trey'] 4 keluar import sys print(sys.argv) print("Hello world") 3

$ python3 greet.py Trey Hello world 0

Kita akan melihat bahwa itu adalah daftar string

$ python3 greet.py Trey Hello world _1

Python menyimpan semua argumen baris perintah sebagai string karena semua argumen baris perintah diberikan ke Python sebagai teks oleh sistem operasi. Python tidak melakukan pemrosesan apa pun dengan mereka;

Jadi jika kita ingin $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 5 dan $ python3 greet.py Trey ['greet.py', 'Trey'] Hello world 6 menjadi angka, kita harus mengonversinya sendiri menjadi angka

$ python3 greet.py Trey Hello world _2

Sekarang kita akhirnya melihat hasil yang kita harapkan

Argumen baris perintah disimpan dalam daftar import sys print(sys.argv) print("Hello world") 3

Jika Anda perlu membuat antarmuka baris perintah yang sangat sederhana (yang hanya untuk Anda) dan tidak perlu ramah, Anda dapat membaca import sys print(sys.argv) print("Hello world") 3 untuk memproses secara manual argumen yang masuk ke program Anda. Tetapi jika Anda membutuhkan sesuatu yang lebih kompleks, Anda mungkin harus menggunakan alat pemrosesan argumen baris perintah yang tepat (seperti modul import sys print("Hello", sys.argv[1]) 0 Python). Bagaimana jika kita ingin meneruskan informasi ke program Python kita untuk mengubah cara kerjanya?

Bagaimana Anda mengonversi argumen menjadi string dengan Python?

Python memiliki fungsi bawaan str() yang mengubah argumen yang diteruskan menjadi format string. Fungsi str() mengembalikan versi string dari suatu objek. Objeknya bisa berupa int , char , atau string. Jika objek tidak diteruskan sebagai argumen, maka ia mengembalikan string kosong.

Bagaimana cara mengambil input menggunakan sys argv dengan Python?

Bagaimana cara menggunakan SYS argv dalam skrip Python? . argv dalam skrip Python, kita perlu mengimpor modul sys ke dalam skrip . Seperti kita mengimpor semua modul, "import sys" berfungsi.

Apa tipe data sys argv di Python?

sys. argv() adalah larik untuk argumen baris perintah dengan Python

Bagaimana cara mendapatkan string dari baris perintah Python?

Cara Mengambil Input String Dari Baris Perintah Dengan Python .
Di [1]. nama = raw_input("Masukkan Nama Anda. ") print("cetak nama",nama) Masukkan Nama Anda. .
nama = raw_input("Masukkan Nama Anda. \n") print("cetak nama",nama) Masukkan Nama Anda. .
Di [1]. nama = input("Masukkan Nama Anda. ") print("cetak nama",nama)

Postingan terbaru

LIHAT SEMUA