Ram*_*amy 0 ruby python parsing command-line-arguments
我一直在大量使用" 真正廉价的命令行选项解析Ruby " 中的答案.这对我的目的来说很棒,总是我需要的.
现在我发现自己回到了Python领域,因为内部库支持我想做的事情.我正在考虑将它移植到Ruby,但这超出了这个问题的范围,但我想使用类似的东西.
这是我在Ruby中经常使用的非常便宜的方法:
$quiet = ARGV.delete('-d')
$interactive = ARGV.delete('-i')
Run Code Online (Sandbox Code Playgroud)
如果有一个"-d"中ARGV数组,然后$quiet设置为"-d"不为零.如果没有"-d",那就$quiet变成了nil.
我可以在Python中做些类似的事吗?
您可能想要使用sys.argv:
from sys import argv
quiet = '-d' in argv # True if '-d' in argv else False
Run Code Online (Sandbox Code Playgroud)
如果要删除'-d'从argv,改变第二行这样的:
quiet = '-d' in argv and (argv.remove('-d') or True)
Run Code Online (Sandbox Code Playgroud)
如果这降低了它的便宜性,让我们来做它的功能:
getArg = lambda x: x in argv and (argv.remove(x) or True)
quiet = getArg('-d')
interactive = getArg('-i')
Run Code Online (Sandbox Code Playgroud)