Tôi đã tạo ra một kịch bản bằng cách sử dụng argparse
.
Tập lệnh cần lấy tên tệp cấu hình làm tùy chọn và người dùng có thể chỉ định liệu họ có cần tiến hành hoàn toàn tập lệnh hay chỉ mô phỏng nó.
Các đối số được thông qua: ./script -f config_file -s
hoặc ./script -f config_file
.
Nó ổn đối với phần -f config_file, nhưng nó cứ hỏi tôi về các đối số cho -s là tùy chọn và không nên theo sau bởi bất kỳ.
Tôi đã thử điều này:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file')
#parser.add_argument('-s', '--simulate', nargs = '0')
args = parser.parse_args()
if args.file:
config_file = args.file
if args.set_in_prod:
simulate = True
else:
pass
Với các lỗi sau:
File "/usr/local/lib/python2.6/dist-packages/argparse.py", line 2169, in _get_nargs_pattern
nargs_pattern = '(-*%s-*)' % '-*'.join('A' * nargs)
TypeError: can't multiply sequence by non-int of type 'str'
Và cùng một lỗi với ''
thay vì 0
.