0
这是当前的代码。如何使用带有条件可选参数的python argparse?
import time
import collections
from modules import outputs
from modules import scrub
from modules import lookups
parser = argparse.ArgumentParser(description='AppMap Converter to Generate Asset Files from AppMapp Data')
parser.add_argument("operation", nargs='?', default="empty", help='The operation to perform')
parser.add_argument("input", nargs='?', default="empty", help='The input AppMapp File Path')
parser.add_argument("output", nargs='?', default="empty", help='The output Asset File Path')
args = parser.parse_args()
start = time.time()
if(args.operation == "Convert"):
input_file_path = args.input
output_file_path = args.output
#DO LOTS OF STUFF
else:
exit()
脚本被称为sacsproc,所以我在命令行中运行它,如下所示:
./sacsproc Convert input.csv output.csv
这一切都工作得很好,问题是,我需要它可以有一个完全更sacsproc命令不同的辅助参数组。即,一个命令可能是:
./sacsproc Clean -rts input.csv output.csv err.csv
因此,我试图确定如何界定是第一个参数有条件的论据?在我看来,我正在考虑zfs命令行实用程序,这些实用程序正在执行我正在尝试执行的操作(例如,zpool create mirror sdb sdc vs zpool remove sda)。
感谢,指出我在正确的方向。经过测试,我认为这是有效的,但帮助文件似乎有点过分:$ ./sacsproc CombineAppMapp --help usage:sacsproc ConvertAppMapp [-h] [input] [output] – gunslingor
移动东西我得到了(不是我所期望的):$ ./sacsproc CombineAppMapp --help 用法:sacsproc [操作] ConvertAppMapp [-h] [输入] [输出] – gunslingor
我希望你可以自己连接点,但现在有一个更完整的例子,我想你想要什么... –