Hướng dẫn add flag to python script - thêm cờ vào tập lệnh python

Trước hết, nhờ Mark cho mã 'Argparse'. Tôi đã tìm ra cách để lấy các đối số từ dòng lệnh được chỉ định bởi cờ. Tôi đang dán mã bên dưới sử dụng mã 'đánh dấu' đã sửa đổi và một mô -đun nhỏ cho thấy cách sử dụng các đối số được thu thập thông qua CommandLine:

import argparse

parser = argparse.ArgumentParser()

#-db DATABASE -u USERNAME -p PASSWORD -size 20000
parser.add_argument("-host", "--hostname", dest = "hostname", default = "xyz.edu", help="Server name")
parser.add_argument("-db", "--database", dest = "db", default = "ding_dong", help="Database name")
parser.add_argument("-u", "--username",dest ="username", help="User name")
parser.add_argument("-p", "--password",dest = "password", help="Password")
parser.add_argument("-size", "--binsize",dest = "binsize", help="Size", type=int)

args = parser.parse_args()

print( "Hostname {} db {} User {} Password {} size {} ".format(
        args.hostname,
        args.db,
        args.username,
        args.password,
        args.binsize
        ))
def ConnectToDB():
    print ('Trying to connect to mySQL server')
    # Try to connect to the database
    try:
        con=sql.connect(host=args.hostname, user= args.username, passwd= args.password)
        print ('\nConnected to Database\n')

    # If we cannot connect to the database, send an error to the user and exit the program.
    except sql.Error:
        print ("Error %d: %s" % (sql.Error.args[0],sql.Error.args[1]))
        sys.exit(1)

    return con

Một trong những mối quan tâm của tôi là làm thế nào để sử dụng các biến từ các đối số đến mã. Đối với hai điều cần phải được thực hiện

  1. Thêm 'Dest' vào dòng add_argument e.x. Dest = "Tên người dùng" có nghĩa là giá trị được thu thập từ dòng lệnh sẽ được gán cho biến 'Tên người dùng'
  2. Bất cứ khi nào bạn sử dụng các biến số lệnh đó được gán từ 'Dest' chỉ cần thêm 'args' trước biến e.x con = sql.connect (host = args.hostname, user = arg.username, passwd = args.password)

trình phân tích cú pháp. add_option (opt_str, ..., attr = value, ...) ....

trình phân tích cú pháp. add_option ("-f", "--file", ...) ....

(Tùy chọn, Args) = trình phân tích cú pháp. parse_args ().

Cờ trong lệnh là gì?

Cờ sửa đổi hoạt động của một lệnh và đôi khi được gọi là tùy chọn. Một lá cờ được đặt ra bởi các khoảng trắng hoặc tab và thường bắt đầu bằng dấu gạch ngang (-). Các trường hợp ngoại lệ là PS, TAR và AR, không yêu cầu một dấu gạch ngang trước một số cờ. Ví dụ: trong lệnh sau: ls -a -f.

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

args = Parser.parse_args ()= parser.parse_args()

Chạy lệnh bên dưới để có được một bản đúng đơn giản như là đầu ra:

Giả sử rằng bạn đã lưu mẫu mã được nêu ở trên trong một tệp có tên là Test Test.Py, chạy các lệnh bên dưới sẽ giúp bạn giúp các tin nhắn trợ giúp liên quan đến chương trình.

$ ./test.py -htest.py -h

$ ./test.py - -helptest.py --help

Bạn sẽ nhận được một số đầu ra tương tự như thế này:

Sử dụng: test.py [-h]

Một chương trình thử nghiệm.

Đối số tùy chọn:

& nbsp; -h, - -Help & nbsp; Hiển thị thông điệp trợ giúp này và thoát

Lưu ý rằng không có logic nào để xử lý các đối số được phân tích cú pháp và chuyển đổi chúng thành các đối tượng đã được thêm vào mẫu mã được đề cập ở trên. Do đó, các thông điệp trợ giúp cho các đối số riêng lẻ không được hiển thị trong đầu ra. Khi bạn thêm logic để xử lý các giá trị của các đối số được phân tích cú pháp trong chương trình của bạn, các thông báo trợ giúp sẽ bắt đầu hiển thị mô tả cho các đối số riêng lẻ.

Ví dụ 2: Xử lý một đối số chuỗi

Để thêm các đối số được chấp nhận bởi tập lệnh Python của bạn, bạn cần sử dụng phương thức add add_argument. Hãy xem mã sau:

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("print_string", help = "in đối số được cung cấp.").add_argument("print_string", help="Prints the supplied argument.")

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Một tuyên bố mới đã được thêm vào hiển thị việc sử dụng phương thức của ADD add_argument. Bất kỳ đối số nào được thêm vào khi khởi chạy tập lệnh sẽ được coi là một đối tượng của print_String, bởi đối tượng của Arg lập luận.

Lưu ý rằng theo mặc định, phương thức của ADD add_argument, đối xử với các giá trị được lấy từ các đối số là chuỗi, do đó, bạn không phải chỉ định rõ ràng loại loại hình trong trường hợp này. Một giá trị mặc định của không có ai cũng được gán cho các đối số được thêm vào, trừ khi được ghi đè.

Một lần nữa hãy xem tin nhắn trợ giúp:

Cách sử dụng: test.py [-h] [print_string]

Một chương trình thử nghiệm.

Đối số tùy chọn:

& nbsp; -h, - -Help & nbsp; Hiển thị thông điệp trợ giúp này và thoát

Đối số tùy chọn:

& nbsp; -h, - -Help & nbsp; Hiển thị thông điệp trợ giúp này và thoát

Lưu ý rằng không có logic nào để xử lý các đối số được phân tích cú pháp và chuyển đổi chúng thành các đối tượng đã được thêm vào mẫu mã được đề cập ở trên. Do đó, các thông điệp trợ giúp cho các đối số riêng lẻ không được hiển thị trong đầu ra. Khi bạn thêm logic để xử lý các giá trị của các đối số được phân tích cú pháp trong chương trình của bạn, các thông báo trợ giúp sẽ bắt đầu hiển thị mô tả cho các đối số riêng lẻ.

Ví dụ 2: Xử lý một đối số chuỗi

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("print_string", help = "in đối số được cung cấp.").add_argument("--print_string", help="Prints the supplied argument.", default=”A random string.”)

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Một tuyên bố mới đã được thêm vào hiển thị việc sử dụng phương thức của ADD add_argument. Bất kỳ đối số nào được thêm vào khi khởi chạy tập lệnh sẽ được coi là một đối tượng của print_String, bởi đối tượng của Arg lập luận.

Lưu ý rằng theo mặc định, phương thức của ADD add_argument, đối xử với các giá trị được lấy từ các đối số là chuỗi, do đó, bạn không phải chỉ định rõ ràng loại loại hình trong trường hợp này. Một giá trị mặc định của không có ai cũng được gán cho các đối số được thêm vào, trừ khi được ghi đè.test.py --print_string LinuxHint.com

Một lần nữa hãy xem tin nhắn trợ giúp:

Cách sử dụng: test.py [-h] [print_string]

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("print_string", help = "in đối số được cung cấp.").add_argument(“-p”, "--print_string", help="Prints the supplied argument.", default=”A random string.”)

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Một tuyên bố mới đã được thêm vào hiển thị việc sử dụng phương thức của ADD add_argument. Bất kỳ đối số nào được thêm vào khi khởi chạy tập lệnh sẽ được coi là một đối tượng của print_String, bởi đối tượng của Arg lập luận.

Lưu ý rằng theo mặc định, phương thức của ADD add_argument, đối xử với các giá trị được lấy từ các đối số là chuỗi, do đó, bạn không phải chỉ định rõ ràng loại loại hình trong trường hợp này. Một giá trị mặc định của không có ai cũng được gán cho các đối số được thêm vào, trừ khi được ghi đè.test.py -p LinuxHint.com

Một lần nữa hãy xem tin nhắn trợ giúp:

Cách sử dụng: test.py [-h] [print_string]

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("print_string", help = "in đối số được cung cấp.").add_argument("-p", "--print_string", help="Prints the supplied argument.", type=int)

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Một tuyên bố mới đã được thêm vào hiển thị việc sử dụng phương thức của ADD add_argument. Bất kỳ đối số nào được thêm vào khi khởi chạy tập lệnh sẽ được coi là một đối tượng của print_String, bởi đối tượng của Arg lập luận.

Lưu ý rằng theo mặc định, phương thức của ADD add_argument, đối xử với các giá trị được lấy từ các đối số là chuỗi, do đó, bạn không phải chỉ định rõ ràng loại loại hình trong trường hợp này. Một giá trị mặc định của không có ai cũng được gán cho các đối số được thêm vào, trừ khi được ghi đè.test.py -p LinuxHint.com

Một lần nữa hãy xem tin nhắn trợ giúp:

Cách sử dụng: test.py [-h] [print_string]

Đối số vị trí:

& nbsp; print_string & nbsp; in đối số được cung cấp.

& nbsp; -h, - -Help & nbsp; & nbsp; hiển thị thông báo trợ giúp này và thoát

Một trong những dòng trong đầu ra cho biết các đối số vị trí của người Viking. Vì không có từ khóa nào cho đối số được xác định, hiện tại đối số được coi là một đối số vị trí của người Hồi giáo trong đó thứ tự và vị trí của đối số được cung cấp có hiệu lực trực tiếp đối với chương trình. Đối số vị trí cũng là bắt buộc, trừ khi bạn thay đổi hành vi của họ theo cách thủ công.

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("print_string", help = "in đối số được cung cấp.").add_argument("-p", "--print_string", help="Prints the supplied argument.", action="store_true")

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Một tuyên bố mới đã được thêm vào hiển thị việc sử dụng phương thức của ADD add_argument. Bất kỳ đối số nào được thêm vào khi khởi chạy tập lệnh sẽ được coi là một đối tượng của print_String, bởi đối tượng của Arg lập luận.

Lưu ý rằng theo mặc định, phương thức của ADD add_argument, đối xử với các giá trị được lấy từ các đối số là chuỗi, do đó, bạn không phải chỉ định rõ ràng loại loại hình trong trường hợp này. Một giá trị mặc định của không có ai cũng được gán cho các đối số được thêm vào, trừ khi được ghi đè.

Ví dụ 5: Xử lý các giá trị đối số như danh sách

Nếu bạn muốn nhận được nhiều giá trị cùng một lúc và lưu trữ chúng trong danh sách, bạn cần cung cấp từ khóa của Nar Nargs ở định dạng sau:

Nhập argparse argparse

trình phân tích cú pháp = argparse.argumentparser (description = 'một chương trình kiểm tra.') = argparse.ArgumentParser(description='A test program.')

Parser.add_argument ("-p", "-print_string", help = "in đối số được cung cấp.", nargs = '*').add_argument("-p", "--print_string", help="Prints the supplied argument.", nargs='*')

args = Parser.parse_args ()= parser.parse_args()

print(args.print_string)(args.print_string)

Chạy lệnh sau để kiểm tra mã ở trên:

Bạn sẽ nhận được một số đầu ra như thế này:

Sự kết luận

Mô -đun của Arg Argparse, khá toàn diện với hàng tấn tùy chọn để điều chỉnh hành vi của các ứng dụng dòng lệnh và các giá trị do người dùng phân chia. Các ví dụ này chỉ chạm vào cách sử dụng cơ bản của mô -đun Arg Argparse. Đối với các ứng dụng nâng cao và phức tạp, bạn có thể cần các triển khai khác nhau. Truy cập & nbsp; Tài liệu chính thức & nbsp; để được giải thích đầy đủ về mô -đun.

Thông tin về các Tác giả

Hướng dẫn add flag to python script - thêm cờ vào tập lệnh python

Tôi là một nhà phát triển phần mềm freelancer và nhà văn nội dung yêu thích Linux, phần mềm nguồn mở và cộng đồng phần mềm miễn phí.

Cờ trong lệnh Python là gì?

Flags xác định một hệ thống dòng lệnh phân tán, thay thế các hệ thống như getopt (), optparse và xử lý đối số thủ công. Thay vì một ứng dụng phải xác định tất cả các cờ trong hoặc gần main (), mỗi mô -đun Python xác định các cờ hữu ích cho nó.defines a distributed command line system, replacing systems like getopt() , optparse , and manual argument processing. Rather than an application having to define all flags in or near main() , each Python module defines flags that are useful to it.

Làm thế nào để bạn thêm các đối số vào tập lệnh Python?

Để thêm các đối số vào các tập lệnh Python, bạn sẽ phải sử dụng một mô-đun tích hợp có tên là Arg Argparse. Như tên cho thấy, nó phân tích các đối số dòng lệnh được sử dụng trong khi khởi chạy tập lệnh hoặc ứng dụng Python. Các đối số phân tích cú pháp này cũng được kiểm tra bởi mô -đun Arg Argparse để đảm bảo rằng chúng thuộc loại đúng kiểu.use a built-in module named “argparse”. As the name suggests, it parses command line arguments used while launching a Python script or application. These parsed arguments are also checked by the “argparse” module to ensure that they are of proper “type”.

Làm thế nào để bạn thêm các tùy chọn trong Python?

Đầu tiên, bạn cần nhập lớp CupplePparser;Sau đó, ngay từ đầu chương trình chính, tạo một phiên bản tùy chọnParser:..
Từ OptParse Nhập tùy chọnParser ... Parser = OptionParser () ....
trình phân tích cú pháp.add_option (opt_str, ..., attr = value, ...) ....
trình phân tích cú pháp.add_option ("-f", "--file", ...) ....
(Tùy chọn, Args) = trình phân tích cú pháp.parse_args ().

Cờ trong lệnh là gì?

Cờ sửa đổi hoạt động của một lệnh và đôi khi được gọi là tùy chọn.Một lá cờ được đặt ra bởi các khoảng trắng hoặc tab và thường bắt đầu bằng dấu gạch ngang (-).Các trường hợp ngoại lệ là PS, TAR và AR, không yêu cầu một dấu gạch ngang trước một số cờ.Ví dụ: trong lệnh sau: ls -a -f.modify the operation of a command and are sometimes called options. A flag is set off by spaces or tabs and usually starts with a dash (-). Exceptions are ps, tar, and ar, which do not require a dash in front of some of the flags. For example, in the following command: ls -a -F.