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
- 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'
- 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ờ 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ẻ. Để 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 argparseCờ trong lệnh là gì?
Ví dụ 2: Xử lý một đối số chuỗi
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ả
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í.