一个简单的例子:import argparse
import envoy
def main(**kwargs):
for key, value in kwargs.iteritems():
print key, value
cmd = '{0} {1}'.format(kwargs['program'], ' '.join(kwargs['infiles']))
r = envoy.run(cmd)
print r.std_out
print r.std_err
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Get a program and run it with input', version='%(prog)s 1.0')
parser.add_argument('program', type=str, help='Program name')
parser.add_argument('infiles', nargs='+', type=str, help='Input text files')
parser.add_argument('--out', type=str, default='temp.txt', help='name of output file')
args = parser.parse_args()
main(**vars(args))
这将读入参数,解析它们,然后将它们作为关键字和值的字典发送到main方法。这样,您就可以通过传入预先构造的字典,独立于参数代码来测试主方法。
main方法输出关键字和值。然后创建一个命令字符串,并将其传递给特使运行。最后,它打印命令的输出。
如果您安装了pip,则可以使用pip install envoy安装特使。获取pip的最简单方法是使用pip-installer。