2010-02-25 7 views
15

¿Por qué aparece ningún error atributo __getitem__ para el diccionario:¿Por qué no obtengo ningún error de atributo '__getitem__' 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() 

Respuesta

24

options no es un diccionario:

print options.input_pattern 
+0

+1 Gracias. Lo confundí Yo solo resolví también. – Viet

7

Si tiene que tener un diccionario , use

options.__dict__ 
0

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

Entonces puedo llamar

option.file

que devuelve ARCHIVO. ¡Es fácil!

Cuestiones relacionadas