将单个命令传递给ad-hoc python脚本的最佳方法

时间:2014-07-08 23:17:03

标签: python

我经常编写ad-hoc python脚本,我想:1)运行脚本(可能通过双击它)并提示输入一个命令来执行文件中的特定块oc代码。 docstring将包含说明。 2)通过命令行参数传递命令。

我想确保我没有遗漏任何东西,因为我很重复这段代码。这样做有更简洁的方式吗?我知道argparse和pocoo' click。但我并不是在寻找更灵活的东西,而是尽可能简单(我很高兴它大约2-3行)。

"""
hello world
"""
import sys
if len(sys.argv) < 2: print sys.modules[__name__].__doc__.strip()
cmd1 = sys.argv[1] if len(sys.argv) == 2 else raw_input('>')
# snippets and functions below this line

if cmd1 == 'test':
    pass

1 个答案:

答案 0 :(得分:1)

if len(sys.argv) < 2: print sys.modules[__name__].__doc__.strip()

cmd1 = sys.argv[1] if len(sys.argv) == 2 else raw_input('>')

def cmd_test():
   print "Run CMD test"

def cmd_something():
   print "run cmd somrthing"


try:
    globals()["cmd_%s"%cmd1]()
except KeyError:
    print "ERROR Unknown Command"

我喜欢这样做...只是名字&#34;命令&#34;功能在某种程度上你可以将它们从全球空间中取出

你可以改进它以允许传递参数和东西