Hướng dẫn how do you pass a variable as a command line argument in python? - làm thế nào để bạn chuyển một biến làm đối số dòng lệnh trong python?

Đây là cách bạn có thể tham chiếu chức năng để gọi động [từ bảng ký hiệu cục bộ bằng cách sử dụng locals[]]

import sys


def method1[value1, value2]:
    print[value1]


def method2[value1, value2]:
    print[value2]


def method_not_found[*args, **kwargs]:
    print['[-] function not found']


if __name__ == "__main__":
    locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
user@pc: python a.py 10 12 method1

10
user@pc: python a.py 10 12 method13

[-] function not found

Giải thích: Cách dòng: the way the line:

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]

Các tác phẩm là locals[] Trả về một loại dict và chúng tôi gọi phương thức .get[] để tham khảo chức năng mà chúng tôi sẽ gọi [nếu không tìm thấy, thay vào đó, hãy nhận chức năng method_not_found].

Sau đó, sau khi chúng tôi nhận được chức năng mà chúng tôi muốn gọi, chúng tôi thực hiện nó bằng cách truyền sys.argv[1], sys.argv[2] làm đối số.

Để vượt qua các đối số dòng lệnh, chúng tôi thường xác định main [] với hai đối số: đối số thứ nhất là số lượng đối số dòng lệnh và thứ hai là danh sách các đối số dòng lệnh. Giá trị của ARGC nên không tiêu cực. Argv [đối số vector] là mảng của các con trỏ ký tự liệt kê tất cả các đối số.Command Line Arguments. Python provides various ways of dealing with these types of arguments. The three most common are: 

  • Sử dụng sys.argv
  • Sử dụng mô -đun GetOpt
  • Sử dụng mô -đun argparse

Sử dụng sys.argv

Mô -đun SYS cung cấp các chức năng và biến được sử dụng để thao tác các phần khác nhau của môi trường thời gian chạy Python. Mô -đun này cung cấp quyền truy cập vào một số biến được sử dụng hoặc duy trì bởi trình thông dịch và các chức năng tương tác mạnh mẽ với trình thông dịch. Một biến đó là sys.argv là cấu trúc danh sách đơn giản. Mục đích chính của nó là:
One such variable is sys.argv which is a simple list structure. It’s main purpose are:

  • Nó là một danh sách các đối số dòng lệnh.
  • Len [sys.argv] cung cấp số lượng đối số dòng lệnh.
  • sys.argv [0] là tên của tập lệnh Python hiện tại. & nbsp; & nbsp;
     

Ví dụ: Hãy giả sử rằng có một tập lệnh Python để thêm hai số và các số được truyền dưới dạng đối số dòng lệnh. & NBSP; Let’s suppose there is a Python script for adding two numbers and the numbers are passed as command-line arguments.
 

Python3

user@pc: python a.py 10 12 method1

10
0
user@pc: python a.py 10 12 method1

10
1

user@pc: python a.py 10 12 method1

10
2
user@pc: python a.py 10 12 method1

10
3
user@pc: python a.py 10 12 method1

10
4
user@pc: python a.py 10 12 method1

10
5

user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
8
user@pc: python a.py 10 12 method1

10
9

user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method13

[-] function not found
2
user@pc: python a.py 10 12 method13

[-] function not found
3
user@pc: python a.py 10 12 method13

[-] function not found
4
user@pc: python a.py 10 12 method13

[-] function not found
5

user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method13

[-] function not found
8
user@pc: python a.py 10 12 method13

[-] function not found
9
user@pc: python a.py 10 12 method1

10
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
1
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
4
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
6
user@pc: python a.py 10 12 method1

10
7
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
8
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
9

locals[]0

user@pc: python a.py 10 12 method1

10
6locals[]2
user@pc: python a.py 10 12 method1

10
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
1
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

locals[]6

user@pc: python a.py 10 12 method1

10
3
user@pc: python a.py 10 12 method13

[-] function not found
4

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
4
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
6
user@pc: python a.py 10 12 method1

10
7
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
8
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
9

locals[]0

user@pc: python a.py 10 12 method1

10
6locals[]2
user@pc: python a.py 10 12 method1

10
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
1
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7dict4dict5locals[]6
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

Output: 
 

Sử dụng mô -đun GetOpt

Sử dụng mô -đun argparsegetopt module is similar to the getopt[] function of C. Unlike sys module getopt module extends the separation of the input string by parameter validation. It allows both short, and long options including a value assignment. However, this module requires the use of the sys module to process input data properly. To use getopt module, it is required to remove the first element from the list of command-line arguments. 
 

Mô -đun SYS cung cấp các chức năng và biến được sử dụng để thao tác các phần khác nhau của môi trường thời gian chạy Python. Mô -đun này cung cấp quyền truy cập vào một số biến được sử dụng hoặc duy trì bởi trình thông dịch và các chức năng tương tác mạnh mẽ với trình thông dịch. Một biến đó là sys.argv là cấu trúc danh sách đơn giản. Mục đích chính của nó là: getopt.getopt[args, options, [long_options]]
Parameters: 
args: List of arguments to be passed. 
options: String of option letters that the script want to recognize. Options that require an argument should be followed by a colon [:]. 
long_options: List of string with the name of long options. Options that require arguments should be followed by an equal sign [=].
Return Type: Returns value consisting of two elements: the first is a list of [option, value] pairs. The second is the list of program arguments left after the option list was stripped. 
 

Example:

Python3

Nó là một danh sách các đối số dòng lệnh.

Len [sys.argv] cung cấp số lượng đối số dòng lệnh.

sys.argv [0] là tên của tập lệnh Python hiện tại. & nbsp; & nbsp;

Ví dụ: Hãy giả sử rằng có một tập lệnh Python để thêm hai số và các số được truyền dưới dạng đối số dòng lệnh. & NBSP;

method_not_found7method_not_found8

user@pc: python a.py 10 12 method1

10
0
user@pc: python a.py 10 12 method1

10
1

user@pc: python a.py 10 12 method1

10
2
user@pc: python a.py 10 12 method1

10
3
user@pc: python a.py 10 12 method1

10
4
user@pc: python a.py 10 12 method1

10
5

user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method13

[-] function not found
8
user@pc: python a.py 10 12 method13

[-] function not found
9
user@pc: python a.py 10 12 method1

10
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
1
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
4
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
6
user@pc: python a.py 10 12 method1

10
7
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
8
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
9

locals[]0

user@pc: python a.py 10 12 method1

10
6locals[]2
user@pc: python a.py 10 12 method1

10
3
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
1
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

locals[]6

user@pc: python a.py 10 12 method1

10
3
user@pc: python a.py 10 12 method13

[-] function not found
4

locals[]0locals[]6 locals[]8

user@pc: python a.py 10 12 method1

10
3 dict0dict1

Mô -đun Python GetOpt tương tự như hàm getOpt [] của C. Không giống như mô -đun SYS Module GetOpt Mở rộng phân tách chuỗi đầu vào bằng xác thực tham số. Nó cho phép cả hai tùy chọn ngắn và dài bao gồm một gán giá trị. Tuy nhiên, mô -đun này yêu cầu sử dụng mô -đun SYS để xử lý dữ liệu đầu vào đúng cách. Để sử dụng mô-đun GetOpt, bắt buộc phải xóa phần tử đầu tiên khỏi danh sách các đối số dòng lệnh. & Nbsp; & nbsp;

Cú pháp: getOpt.getOpt [args, Tùy chọn, [long_options]] tham số: & nbsp; args: danh sách các đối số sẽ được truyền. & Nbsp; Tùy chọn: Chuỗi các chữ cái tùy chọn mà tập lệnh muốn nhận ra. Các tùy chọn yêu cầu một đối số phải được theo sau bởi một dấu hai chấm [:]. & Nbsp; long_options: Danh sách chuỗi có tên của các tùy chọn dài. Các tùy chọn yêu cầu đối số phải được theo sau bởi một dấu hiệu bằng nhau [=]. Loại trả về: Giá trị trả về bao gồm hai phần tử: Đầu tiên là danh sách các cặp [tùy chọn, giá trị]. Thứ hai là danh sách các đối số chương trình còn lại sau khi danh sách tùy chọn bị tước. & NBSP; & NBSP;

user@pc: python a.py 10 12 method1

10
0 dict9

Output: 
 

Sử dụng mô -đun argparse

.get[]0

user@pc: python a.py 10 12 method1

10
3 .get[]2
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
8.get[]4
 

.get[]5

user@pc: python a.py 10 12 method1

10
3 .get[]7 As a default optional argument, it includes -h, along with its long version –help.
 

.get[]8

user@pc: python a.py 10 12 method1

10
3 method_not_found0method_not_found1dict5method_not_found3dict5method_not_found5method_not_found6 Basic use of argparse module.
 

Python3

locals[]0sys.argv[1], sys.argv[2]0

user@pc: python a.py 10 12 method1

10
3 sys.argv[1], sys.argv[2]2

locals[]0

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3 sys.argv[1], sys.argv[2]5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5 sys.argv[1], sys.argv[2]7

user@pc: python a.py 10 12 method1

10
56

Output: 
 

sys.argv[1], sys.argv[2]8sys.argv[1], sys.argv[2]9

user@pc: python a.py 10 12 method1

10
00
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
03dict5____1055
user@pc: python a.py 10 12 method1

10
06
Example 2: Adding description to the help message.
 

Python3

locals[]0sys.argv[1], sys.argv[2]0

user@pc: python a.py 10 12 method1

10
3 sys.argv[1], sys.argv[2]2

locals[]0

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3 sys.argv[1], sys.argv[2]5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5 sys.argv[1], sys.argv[2]7

sys.argv[1], sys.argv[2]8sys.argv[1], sys.argv[2]9

user@pc: python a.py 10 12 method1

10
00
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
03dict5____1055
user@pc: python a.py 10 12 method1

10
06

user@pc: python a.py 10 12 method1

10
56

user@pc: python a.py 10 12 method1

10
07
user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
10
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

 

sys.argv[1], sys.argv[2]8

user@pc: python a.py 10 12 method1

10
13
user@pc: python a.py 10 12 method1

10
00
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
17dict5
user@pc: python a.py 10 12 method1

10
19
user@pc: python a.py 10 12 method1

10
06
Example 3: Defining optional value
 

Python3

locals[]0sys.argv[1], sys.argv[2]0

user@pc: python a.py 10 12 method1

10
3 sys.argv[1], sys.argv[2]2

locals[]0

locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
3 sys.argv[1], sys.argv[2]5
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5 sys.argv[1], sys.argv[2]7

sys.argv[1], sys.argv[2]8sys.argv[1], sys.argv[2]9

user@pc: python a.py 10 12 method1

10
00
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
03dict5____1055
user@pc: python a.py 10 12 method1

10
06

user@pc: python a.py 10 12 method1

10
07
user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
10
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
2

sys.argv[1], sys.argv[2]8

user@pc: python a.py 10 12 method1

10
13
user@pc: python a.py 10 12 method1

10
00
locals[].get[sys.argv[3], 'method_not_found'][sys.argv[1], sys.argv[2]]
5
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
17dict5
user@pc: python a.py 10 12 method1

10
19
user@pc: python a.py 10 12 method1

10
06

user@pc: python a.py 10 12 method1

10
07
user@pc: python a.py 10 12 method1

10
6
user@pc: python a.py 10 12 method1

10
7
user@pc: python a.py 10 12 method1

10
24
user@pc: python a.py 10 12 method13

[-] function not found
3
user@pc: python a.py 10 12 method13

[-] function not found
4
user@pc: python a.py 10 12 method13

[-] function not found
5

Output: 
 


Làm thế nào để bạn vượt qua một biến như một đối số trong dòng lệnh Python?

Trong Python, các đối số được chuyển đến một tập lệnh từ dòng lệnh bằng gói SYS. Thành viên Argv của SYS [SYS. ARGV] sẽ lưu trữ tất cả các thông tin trong mục nhập dòng lệnh và có thể được truy cập bên trong tập lệnh Python. Mô -đun GetOpt của Python cũng có thể được sử dụng để phân tích các đối số được đặt tên.using the sys package. The argv member of sys [ sys. argv ] will store all the information in the command line entry and can be accessed inside the Python script. Python's getopt module can also be used to parse named arguments.

Làm thế nào để bạn vượt qua một biến trong tập lệnh Python?

Cách truyền thông tin đến tập lệnh Python bằng lệnh sys.argv bằng cách mã hóa các biến đầu vào trong sổ ghi chép Jupyter hoặc thông qua việc sử dụng hàm đầu vào [] tương tác.using the sys. argv command by hard-coding the input variables in Jupyter Notebook or through the interactive use of the input[] function.

Làm thế nào để bạn chuyển các giá trị vào các đối số dòng lệnh?

Để vượt qua các đối số dòng lệnh, chúng tôi thường xác định main [] với hai đối số: đối số thứ nhất là số lượng đối số dòng lệnh và thứ hai là danh sách các đối số dòng lệnh.Giá trị của ARGC nên không tiêu cực.Argv [đối số vector] là mảng của các con trỏ ký tự liệt kê tất cả các đối số.define main[] with two arguments : first argument is the number of command line arguments and second is list of command-line arguments. The value of argc should be non negative. argv[ARGument Vector] is array of character pointers listing all the arguments.

Làm thế nào để bạn chuyển một số nguyên cho một đối số dòng lệnh trong Python?

Python3..
Các sys.Argv lấy các đối số dòng lệnh dưới dạng một danh sách ..
Phần tử đầu tiên trong danh sách là tên của tệp ..
Các đối số luôn xuất hiện dưới dạng một chuỗi ngay cả khi chúng ta nhập một số nguyên trong danh sách đối số.Chúng ta cần sử dụng hàm int [] để chuyển đổi chuỗi thành số nguyên ..

Bài Viết Liên Quan

Chủ Đề