正如我的标题所示,我正在使用sys和argparse向代码中添加命令行参数。Sys被用来添加一个文件路径,比如/sample/test/etc,argparse被用来在我的代码中添加一个单独的可选功能。当我只使用argparse时,我的代码运行得很好,但当sys出现时,就会出现以下错误:
test.py:错误:无法识别的参数:/sample/test/etc
代码的前几行我使用sys将文件路径保存到一个变量中:
导入系统
path=sys.argv[1]
我是否可以利用sys来记录文件路径,同时在代码的后面保留我的argparse-r?
您不需要使用sys.argv
来捕获路径,您可以使用argparse
来处理这两个参数。如果添加一个没有-
前缀的参数,它将被视为强制位置参数:
import argparse
parser = argparse.ArgumentParser(description='Description')
parser.add_argument('path', help='Path')
parser.add_argument('-r', '--relative', action='store_true',
help='optional argument')
args = parser.parse_args()
print('path: {:}'.format(args.path))
print('relative: {:}'.format(args.relative))
用法:
myscript.py [-h] [-r] path