Cuál es la forma "más limpia" para implementar una línea de comandos de interfaz de usuario, similar a git de, por ejemplo:Implementando un estilo de interfaz de línea de comando "[comando] [acción] [parámetro]"?
git push origin/master
git remote add origin git://example.com master
Lo ideal sería que también permite el análisis más flexible, por ejemplo,
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
es el nombre de las secuencias de comandos, app
es el comando, theappname
es un parámetro de "ubicación fija", "compilación" y "v2" etc. son argumentos (por ejemplo, los posibles argumentos serían cualquier número/cualquier número con prefijo av, o compilación/fuente/tmp/config)
Podría analizar manualmente los argumentos con una serie de if
/else
/elifs
, pero debe haber una forma más elegante de hacerlo.
A modo de ejemplo puramente teóricas, que podría describir el esquema de interfaz de usuario ..
app:
fixed: application_name
optional params:
arg subsection:
"build"
"source"
"tmp"
"config"
arg version:
integer
"v" + integer
continuación, analizar los argumentos proporcionados aunque el esquema anterior, y obtener un diccionario:
>>> print schema.parse(["app", "theappname", "v1", "source"])
{
"application_name": "theappname",
"params":{
"subsection": "source",
"version":"v1"
}
}
¿El tal sistema existe? Si no, ¿cómo podría implementar algo en esta línea?
¡Agradable! ¡Eso es exactamente lo que ordenó el doctor! ¡Gracias! –
buen ejemplo de cómo usar los subparsores. ¡Gracias! – jozefow