温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Jython中解析命令行

发布时间:2021-07-14 16:23:45 来源:亿速云 阅读:89 作者:chen 栏目:编程语言

本篇内容介绍了“怎么在Jython中解析命令行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在Jython中解析命令行

经常会需要对命令行参数进行比 sys.argv 所提供的更多的处理。parseArgs 函数可以用于作为一组位置参数和一个开关字典得到任意的命令行参数。

因此,继续 JavaUtils.py模块片段,我们看到:

def parseArgs (args, validNames, nameMap=None):      """ Do some simple command line parsing. """     # validNames is a dictionary of valid switch names -      #   the value (if any) is a conversion function      switches = {}      positionals = []      for arg in args:          if arg[0] == '-':               # a switch              text = arg[1:]              name = text; value = None             posn = text.find(':')       # any value comes after a :              if posn >= 0:                  name = text[:posn]                  value = text[posn + 1:]              if nameMap is not None:     # a map of valid switch names                  name = nameMap.get(name, name)              if validNames.has_key(name):   # or - if name in validNames:                  mapper = validNames[name]                  if mapper is None: switches[name] = value                  else:              switches[name] = mapper(value)              else:                  print "Unknown switch ignored -", name           else:                           # a positional argument              positionals.append(arg)      return positionals, switches

可以如下使用这个函数(在文件 parsearg.py 中):

from sys import argv  from JavaUtils import parseArgs   switchDefs = {'s1':None, 's2':int, 's3':float, 's4':int}  args, switches = parseArgs(argv[1:], switchDefs)  print "args:", args  print "switches:", switches

对于命令c:\>jython parsearg.py 1 2 3 -s1 -s2:1 ss -s4:2,它打印:

args: ['1', '2', '3', 'ss']  switches: {'s4': 2, 's2': 1, 's1': None}

这样就实现了在Jython中解析命令行。

“怎么在Jython中解析命令行”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI