如何制作可调用命令列表python?

时间:2011-04-30 05:15:29

标签: python command python-3.x

我想知道如何制作用户可以输入的命令列表。例如,用户在“who”中键入以获取MUD中的人员列表。这一切都是用if,elif和其他蟒蛇完成的吗?

我使用的是Python 3.1 btw。

4 个答案:

答案 0 :(得分:11)

不。派遣词典。

def who(*args, **kwargs):
   ...

commands = {
  'who': who,
   ...
}

...
if command in commands:
  commands[command](*args, **kwargs)
else:
  print('Bad command or file name')

答案 1 :(得分:4)

cmd模块是为此而制作的。只是子类cmd.Cmd(),包括一组开始do_XXX的方法 - 所以do_who()会提供who命令。

答案 2 :(得分:0)

查找input函数以获取用户的命令行输入:

  

输入([提示])

     

如果存在prompt参数,则将其写入标准输出   没有尾随换行符。该   函数然后从输入中读取一行,   将它转换为一个字符串(剥离一个   尾随换行符),然后返回。

这是一个小例子:

s = input("Enter a command: ")
if s == 'who':
  # do stuff
elif s == 'help':
  # show help
else
  # do other stuff

答案 3 :(得分:0)

您可以导入sys模块,而不是使用该模块的sys.stdin.readline()部分。这将接受来自命令行或终端的输入,这意味着您也必须从其中一个输入它。

import sys
sys.stdout.write("$ ")
command = sys.stdin.readline()
command = command.strip() #Remove the new line character
if command = argument:
    do code
elif command = other argument:
    do more code
else:
    Thats not a command than

使用它的好处是,在Linux系统下,程序仍然可以运行。例如,我使用它来接受命令来检查我的服务器/客户端程序以找到3个立方体的总和。我可以告诉它退出,检查找到的多维数据集,或查看客户端和线程列表。