这是我的第一篇文章,因此请原谅任何缺少的信息或愚蠢的问题。因此,我想做的是运行命令行python脚本(我在Windows计算机中),将其传递2个参数,检查是否参数已传递,如果未传递,则显示特定于该参数的错误消息。我收到一个缺少的参数错误,但未显示我想要的消息(在函数中定义)。我不确定是否没有正确创建函数,或者是否缺少某些东西。我还想检查传递的参数是否是正确的字符串,而不是int,但似乎参数默认为字符串,因此检查它们是否为int也不起作用。
有人可以给我提示或指向正确的方向吗?我一直在网上搜索,但还没有找到任何可以回答这个问题的信息。我是python的新手,因此仍在学习如何正确阅读文档(似乎对于我来说了解文档的示例太少了)。这是我正在使用的代码:
import argparse
#parser to create and grab args from CLI
parser = argparse.ArgumentParser()
parser.add_argument("-i", help="File path of original folder")
parser.add_argument("-o", help="File path of output folder")
args = parser.parse_args()
#check if args have been passed and display error if missing
def check_args(input_path,output_path):
if input_path == None:
print("Please input a valid folder path for original folder destination")
elif output_path == None:
print("Please input a valid folder path for output folder destination")
else:
return args
#grab first and sec argument
input_path = args.i
output_path = args.o
check_args(input_path, output_path)
输出:
Program>python JPGtoPNG_conv.py -i 3 -o
usage: JPGtoPNG_conv.py [-h] [-i I] [-o O]
JPGtoPNG_conv.py: error: argument -o: expected one argument
非常感谢您的帮助!
答案 0 :(得分:-1)
下面的代码应该为您完成工作
import argparse
import sys
class MyParser(argparse.ArgumentParser):
def error(self, message):
sys.stderr.write('error: %s\n' % message)
self.print_help()
sys.exit(2)
parser = MyParser()
parser.add_argument("-i", help="File path of original folder", required=True)
parser.add_argument("-o", help="File path of output folder", required=True)
args = parser.parse_args()
# grab first and sec argument
input_path = args.i
output_path = args.o