【问题标题】:Defining path to a file with argparse使用 argparse 定义文件的路径
【发布时间】:2020-06-20 22:00:27
【问题描述】:

我有以下一段 python 代码:

 # construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--detector", required=True,
    help="path to detector .dat file")
ap.add_argument("-a", "--warning", type=str, default="",
    help="path to warning .WAV file")
ap.add_argument("-w", "--webcam", type=int, default=0,
    help="index of webcam on system")
args = vars(ap.parse_args())

我有两个文件名为"detector.dat""warning.wav",它们放在我桌面上的一个文件夹中,名为"doc"。所以这两个文件的路径是C:\Users\user\Desktop\doc

因此,我对上述代码的更新如下:

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
    ap.add_argument("-p", "--detector", required=True,
        help="C:/Users/user/Desktop/doc/detector.dat")
    ap.add_argument("-a", "--warning", type=str, default="",
        help="C:/Users/user/Desktop/doc/warning.wav")
    ap.add_argument("-w", "--webcam", type=int, default=0,
        help="index of webcam on system")
    args = vars(ap.parse_args())

请注意,我名为"script_name.py" 的主代码也在我桌面上的文件夹"doc" 中。

通过使用 Anaconda Prompt 作为(base) C:\Users\user\Desktop\doc>python script_name.py 运行我的整个代码,我总是得到以下错误:

错误:需要以下参数:-p/--detector

如何更新上述代码?任何帮助将不胜感激。

【问题讨论】:

  • 你能告诉我们你是如何运行你的脚本的吗?您已将参数 -p/--detector 标记为必需。看起来当您启动脚本时,您没有传递此参数。 add_argumenthelp 参数是解释参数代表什么的帮助文本,而不是实际值的占位符。
  • 您是从 IDE 还是从终端运行脚本?
  • 来自 Anaconda Prompt (Anaconda3) 的@Brian
  • @Brian 我解决了我的问题。我应该使用:python script_name.py -p detection.dat -a alarm.wav

标签: python anaconda arguments argparse


【解决方案1】:

.dat 文件的参数名称为-p--detector.wav 文件的参数名称为a--warning,而不是您一直使用的help。所以运行:

python script_name.py "C:/Users/user/Desktop/doc/detector.dat" "C:/Users/user/Desktop/doc/warning.wav"

如需更多帮助,请运行:

python script_name.py --help

【讨论】:

  • 感谢您的回答。但我仍然得到同样的错误。
  • @Christina 尝试在路径之间使用"" 运行它。
  • 我解决了我的问题。我应该使用:python script_name.py -p detection.dat -a alarm.wav
  • 您缺少“--detector”标志。定义中的所有参数都是optionals,带有一个标志字符串。
  • 只写-p检测器.dat,效果很好。抱歉,第二个参数是 -a warning.wav
猜你喜欢
  • 2011-11-14
  • 2017-06-19
  • 2019-01-16
  • 1970-01-01
  • 2022-08-19
  • 2021-02-11
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多