命令行参数处理

时间:2015-02-28 19:58:00

标签: python parsing command-line

如何构建命令行处理块,以便允许以任何顺序命名多个文件并按其后缀发现这些文件类型?

在这个Python程序中,我需要将二进制文件和.vhdr文件都传递给我的命令行。 .vhdr文件将被读取到内存,而(大)二进制文件将被逐步处理。我想以某种方式构建它,以便用户可以按任何顺序传递文件名。在我看来,处理这个问题的一种智能方法是迭代argv中的每个项目,检查它是否有“.vhdr”后缀,并使用这个项目保存到我的文件对象。

是否有任何库具有此功能,还是应该从头开始编写?我无法在argparse库中找到类似的东西,但我是新手,所以我很容易看到它而不理解。

1 个答案:

答案 0 :(得分:3)

使用众所周知的argparse库。简单的例子

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--vhdr", dest="vhdr_file")
parser.add_argument("--bin", dest="bin_file")
args = parser.parse_args()
print(args)

输出:

$ python demo.py --vhdr 1 --bin 2
Namespace(bin_file='2', vhdr_file='1')
$ python demo.py  --bin 1 --vhdr 2
Namespace(bin_file='1', vhdr_file='2')