2010-02-25 11 views
15

Perche 'si ottengono nessun attributo errore __getitem__ per dizionario:Perché non ottengo l'errore "__getitem__" per il dizionario?

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__' 

Ecco il codice:

#!/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() 

risposta

24

options non è un dict:

print options.input_pattern 
+0

+1 Grazie. L'ho scambiato. Ho appena risolto anche io. – Viet

7

Se si deve avere un dict , utilizzare

options.__dict__ 
0

Come un altro utente ha detto, le opzioni non sono un dizionario. Ho fatto questo errore anch'io. Se ho un'opzione --file FILE

Allora posso chiamare

option.file

che restituisce FILE. È così facile!

Problemi correlati