On Nov 17, 2007 5:35 PM, Mr. SpOOn <[EMAIL PROTECTED]> wrote: > On Nov 17, 2007 5:24 PM, Francesco Guerrieri <[EMAIL PROTECTED]> wrote: > > Cosa succede se fai type(yaml.load(data)) ? > > >>> d = yaml.load(stream) > >>> type(d) > <type 'NoneType'> > >>> type(yaml.load(stream)) > <type 'NoneType'> > > Però, provando come hai fatto tu: > > >>> data = """ > a: 1 > b: 2 > """ > >>> yaml.load(data) > {'a': 1, 'b': 2} > >>> d = yaml.load(data) > >>> type(d) > <type 'dict'> > >>> d['a'] > 1 > > > Solo che io avrei bisogno di utilizzare i file :\
La soluzione è semplice: se gli passi un file lui parte dalla prima riga e arriva fino all'ultima. E quindi, la prima volta funziona: my_file = open('prova) yaml.load(my_file) e funziona come nel tuo esempio Ma ora my_file è stato letto tutto e tu sei alla EOF. Allora basta fare my_file.seek(0) e riprovare :-) my_file.seek(0) d = yaml.load(my_file) et voilà :-) usando una stringa tipo data = """ a: 1 b: 2 """ non ci sono problemi di EOF, di iteratori che hanno consumato il file etc etc perché gli stai sempre passando tutto il documento YAML. Naturalmente questo comportamento è tipico della lettura dei file, non è specifico per yaml. ciao fra _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python