【发布时间】:2011-05-02 20:28:46
【问题描述】:
我正在为 Minecraft 服务器创建一个包装器,它应该从名为 commands 的目录中获取新命令,该目录包含以命令命名的文件,所有文件都包含用于构成该命令的服务器命令。例如,以下 sn -p 来自定义“tell”命令的文件:
tell <1> <sender> says: <2>
在内部,包装器读取服务器进程的标准输出,寻找用户正在运行命令的迹象。然后,它将命令拆分,取名为“sender”,显然是发送命令的人,“command”是一个指示命令的单字字符串,以及一个名为 args 的列表,其中包含参数在命令字符串之后。例如,tell 命令的语法是这样的:
tell jim hello
这会产生以下名称:
sender = s0lder
command = tell
args = ['jim', 'hello']
我的问题是,假设上面的例子,我怎样才能使最终的字符串,说“输出”,阅读:
tell jim s0lder says: hello
我基本上需要一种方法,用 args 列表的相应名称/项目替换定义字符串中括号包围的区域,以便:
<sender> = sender
<1> = args[0]
<2> = args[1]
对 args 列表中的所有项目以此类推。谢谢。
【问题讨论】:
-
贴出你已经尝试过的代码以及它是如何失败的。
标签: python list substitution