[ACCEPTED]-Python Interactive Shell Type Application-console-application
Just input
the commands in a loop.
For parsing 4 the input, shlex.split
is a nice option. Or just go 3 with plain str.split
.
import readline
import shlex
print('Enter a command to do something, e.g. `create name price`.')
print('To get help, enter `help`.')
while True:
cmd, *args = shlex.split(input('> '))
if cmd=='exit':
break
elif cmd=='help':
print('...')
elif cmd=='create':
name, cost = args
cost = int(cost)
# ...
print('Created "{}", cost ${}'.format(name, cost))
# ...
else:
print('Unknown command: {}'.format(cmd))
The readline
library adds history functionality 2 (up arrow) and more. Python interactive 1 shell uses it.
Another approach to building interactive 4 applications like this is by using the cmd module.
# app.py
from cmd import Cmd
class MyCmd(Cmd):
prompt = "> "
def do_create(self, args):
name, cost = args.rsplit(" ", 1) # args is string of input after create
print('Created "{}", cost ${}'.format(name, cost))
def do_del(self, name):
print('Deleted {}'.format(name))
def do_exit(self, args):
raise SystemExit()
if __name__ == "__main__":
app = MyCmd()
app.cmdloop('Enter a command to do something. eg `create name price`.')
And 3 here is the output of running the above 2 code (if the above code was in a file named 1 app.py
):
$ python app.py
Enter a command to do something. eg `create name price`.
> create item1 10
Created "item1", cost $10
> del item1
Deleted item1
> exit
$
You could start by having a look at argparse.
It 3 does not provide a complete interactive 2 shell, like you ask, but it helps in creating 1 functionality similar to your PHP example.
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.