我如何有两个位置参数通过命令行传递给程序,其中每个参数是可变长度文件的列表?我目前正在使用argparse来获取参数。
我知道您可以使用可选的命名参数进行类似操作,但是可以使用没有标签(--arg)来描述一个参数在哪里停止而下一个参数在哪里开始的位置参数吗?
如果有帮助,不同的文件将具有不同的文件扩展名。
答案 0 :(得分:2)
如果每组文件都有其自己的文件扩展名,则参数已被描绘出来。您只需让参数解析器将参数放入一个较长的列表中,然后再将它们分开即可。
parser.add_argument('filenames', nargs='*')
def getByExtension(lst, ext):
return [f for f in lst if f.endswith(ext)]
args = parser.parse_args()
pyFiles = getByExtension(args.filenames, '.py')
scmFiles = getByExtension(args.filenames, '.scm')
请注意,由于列表理解无关紧要,因此用户不必按任何特定顺序保留参数即可。