我正在使用Python编写数据输入系统,其中用户也应该能够提交'命令,就像Python shell一样,或者例如SAS或R接口。我想知道如何编写shell。例如,它应该提供提示(用户不能删除,例如Python中的>>>提示)并接收用户的输入。此外,一旦提交了一个条目,用户就无法返回,就像在DOS提示符中那样,你不能上线,可以这么说。
有人可以帮忙吗?
答案 0 :(得分:5)
cmd.Cmd类可以帮助您构建类似shell的应用程序。 同样,cmd2是上述模块的一个很好的升级。通过这些,您可以构建一个具有命令历史记录,帮助菜单和智能命令解析的shell应用程序。不要从头开始构建REPL,因为这些模块可能足以满足您的需求。
答案 1 :(得分:0)
我在Python中编写了一个完整的sh
实现,但遗憾的是我没有源代码。
您的基本代码是:
while True:
command = raw_input('>>> ')
print 'You entered "{command}".'.format(command = command)
但是如果你需要一些比简单的bash
更复杂的东西,那么有一些项目可能适合你的需求:
cmd
class :自我解释。功能不是很丰富,但它是Python shell。答案 2 :(得分:0)
您可能需要查看readline库(获取完成和历史等精彩功能)。可悲的是,它只是UNIX,就像它的底层C库一样。