parser parse namespace metavar example python dictionary optparse

python - parse - ¿Por qué no aparece el error "__getitem__" para el diccionario?



python parse args string (3)

¿Por qué no __getitem__ ningún atributo __getitem__ error para el diccionario:

Traceback (most recent call last): File "./thumbnail.py", line 39, in <module> main() File "./thumbnail.py", line 19, in main options[''input_pattern''] AttributeError: Values instance has no attribute ''__getitem__''

Aquí está el código:

#!/usr/bin/env python import os, sys, glob from PIL import Image from optparse import OptionParser def batch_convert(src_dir, input_pattern, output_ext = None, dest_dir = None): return 0 def main(): print sys.argv parser = OptionParser() parser.add_option("-s", "--source-dir", dest="src_dir", help="Source directory to fetch images") parser.add_option("-d", "--dest-dir", dest="dest_dir", help="Destination directory to writen processed images") parser.add_option("-i", "--input-pattern", dest="input_pattern", help="Look for files that match some pattern. E.g. *.png or pic*cool*") parser.add_option("-o", "--output-format", dest="output_ext", help="Output format to save all images. If empty, original format of images is preserved") (options, args) = parser.parse_args() print options options[''input_pattern''] if __name__ == "__main__": main()


Como dijo otro usuario, las opciones no son un diccionario. Hice este error yo mismo. Si tengo una opción --file FILE

Entonces puedo llamar

option.file

que devuelve el archivo. ¡Es fácil!


Si debe tener un dictado, use

options.__dict__


options no es un dict:

print options.input_pattern