Dav*_*ust 10 python command-line-arguments
我有一个脚本需要接受一个文件的名称和一组键=值对.未定义键=值对的集合.它们依赖于传入的文件.
例如:
Script.py file1 bob=1 sue=2 ben=3 # file 1 needs bob, sue, and ben
Script.py file2 mel=1 gorge=3 steve=3 # file 2 needs mel, gorge, and steve
Run Code Online (Sandbox Code Playgroud)
这是可能的argparse/optparse还是我必须构建自己的解析器?
Jud*_*den 15
这应该很容易解析自己.由于事先不知道密钥,因此使用帮助程序库会很复杂.文件名在sys.argv [1]中.您可以使用以"="字符分隔的字符串列表构建字典作为分隔符.
import sys
filename = sys.argv[1]
args = dict([arg.split('=', maxsplit=1) for arg in sys.argv[2:]])
print filename
print args
Run Code Online (Sandbox Code Playgroud)
输出:
$ Script.py file1 bob=1 sue=2 ben=3
file1
{'bob': '1', 'ben': '3', 'sue': '2'}
Run Code Online (Sandbox Code Playgroud)
这是它的要点,但你可能需要更健壮的键值对解析,而不仅仅是拆分字符串.此外,sys.argv在尝试提取文件名之前,请确保至少有两个参数.