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)