parse_args 解析器参数中的所有 .png 文件

我想得到一个在运行以下 ( )后arg.pics返回类似['pic1.png', 'pic2.png', 'pic3.png'](任意解析 .png 格式的所有文件) 的内容test.py:


import argparse

import os


def parser_arg():

    par = argparse.ArgumentParser()

    parser = par.add_argument_group('pictures')

    parser.add_argument("-p", "--pics", nargs="+", help="picture files", required=True)

    arguments = par.parse_args()

    return arguments


args = parser_arg()

并通过命令行运行脚本,并输入


python test.py -p ../User/Desktop/Data/*.png

然后args.pics返回['../User/Desktop/Data/*.png']。


我是否使用了正确的方法?我听说 using*.png将在输入后扩展为 .png 文件,但在我看来情况并非如此。


编辑:如果有帮助,我将在 Windows 10 上使用 Anaconda Prompt。


慕森卡
浏览 106回答 2
2回答

慕仙森

你的方法是正确的。但是,如果您的 shell 支持通配符并且模式实际上与任何文件匹配,则您的脚本只会接收扩展的文件列表作为参数。否则,在大多数情况下,它将是模式本身。Anaconda 命令提示符cmd.exe默认使用,不支持通配符扩展。您可以改用PowerShell,它可以理解通配符。或者,您可以按照 Mad Physicist's answer 中所述在您的应用程序中进行扩展。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python