Theo tài liệu về số getopt
của python (tôi nghĩ) các trường tùy chọn sẽ hoạt động như chức năng getopt()
. Tuy nhiên tôi dường như không thể cho phép các thông số tùy chọn để mã của tôi:Có cách nào để thuyết phục getopt của python để xử lý các tham số tùy chọn cho các tùy chọn không?
#!/usr/bin/python
import sys,getopt
if __name__ == "__main__":
try:
opts, args = getopt.gnu_getopt(sys.argv[1:], "v::", ["verbose="])
except getopt.GetoptError, err:
print str(err)
sys.exit(1)
for o,a in opts:
if o in ("-v", "--verbose"):
if a:
verbose=int(a)
else:
verbose=1
print "verbosity is %d" % (verbose)
Kết quả trong:
$ ./testopt.py -v
option -v requires argument
$ ./testopt.py -v 1
verbosity is 1
đó là tài liệu optparse;) – SilentGhost
Yeah Tôi chỉ nhận thấy rằng, trường hợp cổ điển của "tab sai "hội chứng. Tuy nhiên, tôi vẫn nghĩ rằng lý do này là tương đối cho getopt quá. –
Ngoài ra, các tùy chọn dài có thể có các đối số tùy chọn một cách rõ ràng; "--foo" so với "--foo = arg". Python không xuất hiện để hỗ trợ điều này, mà là rất nghèo; một triệu chứng của nửa chừng reimplementing một cái gì đó từ đầu ... –