Hướng dẫn how to pass multiple arguments in python script - cách truyền nhiều đối số trong tập lệnh python

Giải pháp đầu tiên (và có lẽ tốt hơn) là đưa ra đối số thứ hai và thứ ba trong các trích dẫn như Susmit Agrawal đề xuất. Sau đó, bản thân vỏ sẽ chia dòng lệnh thành các đối số một cách thích hợp.

python mytest.py   "value of file 1"  "value of file 2"

Trong trường hợp bạn thực sự cần phải vượt qua các đối số mà không có trích dẫn, bạn sẽ phải chấp nhận rằng vỏ sẽ được chia đối số thứ hai và thứ ba tại không gian, vì vậy bạn sẽ cần phải tự xây dựng lại chúng từ

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
3.

Cuối cùng, bạn có thể muốn khám phá thư viện Argparse để giúp bạn phân tích các đối số dòng lệnh. Trong trường hợp này, bạn có thể muốn sử dụng các đối số tùy chọn với

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
4 được đặt thành
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
5 hoặc một số số nhất định dựa trên API dòng lệnh của bạn. Ví dụ: nếu bạn xác định và phân tích các đối số của bạn theo cách sau,

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)

Sau đó, bạn có thể gọi chương trình Python của mình là

python mytest.py   --value-1 value of file 1  --value-2 value of file 2

Và nhận được kết quả sau,

Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])

mà sau đó bạn có thể truy cập một cách thuận tiện như

print(args.value_1)
print(args.value_2)
print(args.email)

Một thói quen là một nhóm hướng dẫn được đặt tên thực hiện một số nhiệm vụ. Một thói quen luôn có thể được gọi cũng như được gọi là nhiều lần theo yêu cầu trong một chương trình nhất định. & NBSP;Routine is a named group of instructions performing some tasks. A routine can always be invoked as well as called multiple times as required in a given program.
 

Hướng dẫn how to pass multiple arguments in python script - cách truyền nhiều đối số trong tập lệnh python

Khi thói quen dừng lại, việc thực hiện ngay lập tức trở lại giai đoạn mà thói quen được gọi. Các thói quen như vậy có thể được xác định trước trong ngôn ngữ lập trình hoặc được thiết kế hoặc thực hiện bởi lập trình viên. Một chức năng là phiên bản Python của thói quen trong một chương trình. Một số chức năng được thiết kế để trả về các giá trị, trong khi các hàm khác được thiết kế cho các mục đích khác.Function is the Python version of the routine in a program. Some functions are designed to return values, while others are designed for other purposes.
We pass arguments in a function, we can pass no arguments at all, single arguments or multiple arguments to a function and can call the function multiple times.
Example:

Python

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
7

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
8
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
0
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
1
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
2

python mytest.py   --value-1 value of file 1  --value-2 value of file 2
3

Output:

Geeks for Geeks

Trong chương trình trên, hàm DisplayMessage () được gọi mà không chuyển bất kỳ đối số nào cho nó.

Python

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
5

python mytest.py   --value-1 value of file 1  --value-2 value of file 2
6
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
0
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
9
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
0
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
1
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
0
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
3
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
2

Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
5
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
7

Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
8

Output:

Hello R2J !

Trong chương trình trên, hàm DisplayMessage () được gọi bằng cách chuyển một đối số cho nó. Một đối số chính thức là một đối số có mặt trong định nghĩa hàm. Một đối số thực tế là một đối số, có mặt trong chức năng CALL. Việc thông qua nhiều đối số đến một hàm trong Python:
Passing multiple arguments to a function in Python:

  • Chúng ta có thể chuyển nhiều đối số cho hàm Python bằng cách xác định trước các tham số chính thức trong định nghĩa hàm. & NBSP; & nbsp;
     

Python

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
print(args.value_1)
print(args.value_2)
print(args.email)
0

Các

Geeks for Geeks
2
Geeks for Geeks
3
Geeks for Geeks
4
Geeks for Geeks
5
Geeks for Geeks
4
Geeks for Geeks
3
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
2

  • Output:
Geeks 4 Geeks
  • Trong chương trình trên, nhiều đối số được chuyển đến hàm DisplayMessage () trong đó số lượng đối số được truyền đã được sửa.
  • Chúng ta có thể chuyển nhiều đối số cho hàm Python mà không cần định trước các tham số chính thức bằng cách sử dụng cú pháp dưới đây:
def functionName(*argument)
  • Biểu tượng * được sử dụng để truyền một số lượng đối số biến cho một hàm. Thông thường, cú pháp này được sử dụng để tránh mã thất bại khi chúng tôi không biết có bao nhiêu đối số sẽ được gửi đến hàm. & NBSP; & nbsp;
     

Python

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
print(args.value_1)
print(args.value_2)
print(args.email)
0

Các

Trong chương trình trên, nhiều đối số được chuyển đến hàm DisplayMessage () trong đó số lượng đối số được truyền đã được sửa.

Chúng ta có thể chuyển nhiều đối số cho hàm Python mà không cần định trước các tham số chính thức bằng cách sử dụng cú pháp dưới đây:

Hello R2J !
3
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
Geeks 4 Geeks
9

Biểu tượng * được sử dụng để truyền một số lượng đối số biến cho một hàm. Thông thường, cú pháp này được sử dụng để tránh mã thất bại khi chúng tôi không biết có bao nhiêu đối số sẽ được gửi đến hàm. & NBSP; & nbsp;

  • Output:
15
  • parser = argparse.ArgumentParser()
    parser.add_argument('--value-1', nargs=4)
    parser.add_argument('--value-2', nargs=4)
    parser.add_argument('email', nargs='+')
    args = parser.parse_args()
    
    print(args)
    
    6
    Hello R2J !
    0
    Hello R2J !
    1
    Hello R2J !
    2
  • Hello R2J !
    3
    Hello R2J !
    4
    Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
    
    6
    Hello R2J !
    6
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
0
  • Hello R2J !
    3
    Hello R2J !
    8
    Hello R2J !
    9
    Geeks 4 Geeks
    0
    Geeks 4 Geeks
    1
     

Python

Geeks 4 Geeks
2
Hello R2J !
4
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
0
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
Geeks 4 Geeks
6

Các

Geeks 4 Geeks
2
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
03

Trong chương trình trên, số lượng đối số biến được chuyển đến hàm displayMessage () trong đó số lượng đối số được truyền không được xác định trước. .

Chúng ta có thể chuyển nhiều đối số từ khóa đến hàm Python mà không cần xác định trước các tham số chính thức bằng cách sử dụng cú pháp dưới đây:

  • Output:
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
1
  • Biểu tượng ** được sử dụng trước một đối số để chuyển từ điển đối số từ khóa cho một hàm, cú pháp này được sử dụng để chạy thành công mã khi chúng tôi không biết có bao nhiêu đối số từ khóa sẽ được gửi đến hàm. & NBSP; & nbsp;

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
15
2
Hello R2J !
1
Hello R2J !
1
Hello R2J !
2

Python

Hello R2J !
3
Hello R2J !
8
15
8
Geeks 4 Geeks
0
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
00

Hello R2J !
3
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
25

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
04
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
Geeks for Geeks
3
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
07
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
def functionName(*argument)
3__

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
11
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
12
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
Geeks for Geeks
3
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
2

Trong chương trình trên, số lượng các đối số từ khóa được chuyển đến hàm DisplayArgument ().

Geeks 4 Geeks
2
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
03

Dưới đây là một chương trình để minh họa tất cả các trường hợp trên để vượt qua nhiều đối số trong một hàm. & NBSP;

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
6
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
17
Hello R2J !
1
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
19
Hello R2J !
1
Hello R2J !
1
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
22

Hello R2J !
3
Hello R2J !
8
15
8
Geeks 4 Geeks
0
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
30

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
54
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
55
Namespace(email=[''], value_1=['value', 'of', 'file', '1'], value_2=['value', 'of', 'file', '2'])
6
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
57
python mytest.py   --value-1 value of file 1  --value-2 value of file 2
2

Output:

parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
2

Geeks 4 Geeks
2
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
9
parser = argparse.ArgumentParser()
parser.add_argument('--value-1', nargs=4)
parser.add_argument('--value-2', nargs=4)
parser.add_argument('email', nargs='+')
args = parser.parse_args()

print(args)
03


Làm thế nào để bạn vượt qua nhiều hơn một đối số trong Python?

Biểu tượng * được sử dụng để truyền một số lượng đối số biến cho một hàm.Thông thường, cú pháp này được sử dụng để tránh mã thất bại khi chúng ta không biết có bao nhiêu đối số sẽ được gửi đến hàm.. Typically, this syntax is used to avoid the code failing when we don't know how many arguments will be sent to the function.

Làm thế nào để bạn vượt qua các đối số trong một kịch bản 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.

* Args Python là gì?

*Args cho phép chúng tôi chuyển một số lượng các đối số không phải là Keykord cho hàm Python.Trong hàm, chúng ta nên sử dụng dấu hoa thị ( *) trước tên tham số để chuyển một số lượng đối số biến.def add (*args): in (args, gõ (args)) thêm (2, 3)allows us to pass a variable number of non-keyword arguments to a Python function. In the function, we should use an asterisk ( * ) before the parameter name to pass a variable number of arguments. def add(*args): print(args, type(args)) add(2, 3)