cách "sạch" để thực hiện một dòng lệnh giao diện người dùng, tương tự như git, ví dụ là gì:Thực hiện một giao diện dòng lệnh kiểu lệnh [[command] [action] [parameter] "?
git push origin/master
git remote add origin git://example.com master
Lý tưởng nhất cũng cho phép phân tích linh hoạt hơn, ví dụ,
jump_to_folder app theappname v2
jump_to_folder app theappname source
jump_to_folder app theappname source v2
jump_to_folder app theappname build v1
jump_to_folder app theappname build 1
jump_to_folder app theappname v2 build
jump_to_folder
là tên tập lệnh, app
là lệnh, theappname
là thông số "vị trí cố định", "xây dựng" và "v2" v.v. là các đối số (Ví dụ: đối số có thể là bất kỳ số nào/số bất kỳ được đặt trước bằng av hoặc build/nguồn/tmp/config)
Tôi chỉ có thể phân tích cú pháp các đối số bằng một loạt các if
/else
/elifs
theo cách thủ công, nhưng phải có cách thanh lịch hơn để thực hiện việc này?
Như một ví dụ hoàn toàn về mặt lý thuyết, tôi có thể mô tả giản đồ UI ..
app:
fixed: application_name
optional params:
arg subsection:
"build"
"source"
"tmp"
"config"
arg version:
integer
"v" + integer
Sau đó, phân tích các đối số được cung cấp mặc dù sơ đồ trên, và nhận được một cuốn từ điển:
>>> print schema.parse(["app", "theappname", "v1", "source"])
{
"application_name": "theappname",
"params":{
"subsection": "source",
"version":"v1"
}
}
Liệu như một hệ thống tồn tại? Nếu không, làm thế nào tôi sẽ đi về việc thực hiện một cái gì đó dọc theo những dòng này?
Rất tuyệt! Đó là chính xác những gì bác sĩ đã ra lệnh! Cảm ơn! –
ví dụ tốt về cách sử dụng subparsers. Cảm ơn! – jozefow