[Tutor] os.environ weirdness
Poor Yorick
gp@pooryorick.com
Tue Dec 10 14:16:14 2002
No, I didn't tinker around with os.environ. I see this behavior on both
of my windows 2000 computers. Can anyone else reproduce this?
Poor Yorick
gp@pooryorick.com
Gregor Lingl wrote:
> Poor Yorick schrieb:
>
>> Another phenomenon I haven't made sense of:
>>
>> >>> for i in os.environ:
>> print i
>>
>> Traceback (most recent call last):
>> File "<pyshell#13>", line 1, in ?
>> for i in os.environ:
>> File "C:\Python22\lib\os.py", line 387, in __getitem__
>> return self.data[key.upper()]
>> AttributeError: 'int' object has no attribute 'upper'
>
>
> For me this works (although it's not a subclassed dict, but
> a subclassed IterableUserDict, which also implements __iter__(),
> as a look at os.py shows.):
>
> >>> import os
> >>> for i in os.environ:
> print i,
>
> TMP USERNAME COMPUTERNAME LOGONSERVER COMSPEC USERDOMAIN HOME
> TFLIBDIR TCL_LIBRARY COMMONPROGRAMFILES PROCESSOR_IDENTIFIER
> PROGRAMFILES PROCESSOR_REVISION PATHEXT SYSTEMROOT PATH APPDATA TEMP
> HOMEDRIVE SYSTEMDRIVE PROCESSOR_ARCHITECTURE NUMBER_OF_PROCESSORS
> ALLUSERSPROFILE PROCESSOR_LEVEL TK_LIBRARY HOMEPATH OS2LIBPATH
> USERPROFILE OS WINDIR
> >>>
>
> Your errormessage shows, that there is a key in your os.environ, which
> is an 'int',
> whereas it is assumed. that all keys are of type string. so they have
> a method upper.
> Did you tinker around with os.eviron?
>
> Regards, Gregor
>
>
>>
>> I realize that os.environ is not a builtin dictionary, but some sort
>> of subclassed dictionary, but these commands work:
>>
>> os.environ.keys()
>> os.environ.items()
>>
>> doesn't the "in" statement just resolve to one of those functions?
>>
>> Regards,
>>
>> Poor Yorick
>> gp@pooryorick.com
>>
>>
>> _______________________________________________
>> Tutor maillist - Tutor@python.org
>> http://mail.python.org/mailman/listinfo/tutor
>>
>>
>
>
>
>
>
>