命令行参数处理

Command line argument processing

如何构建他们的命令行处理块以允许以任何顺序命名多个文件并通过后缀发现这些文件类型?

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

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

使用众所周知的 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')