classification
Title: Environ doesn't escape spaces properly
Type: behavior Stage:
Components: None Versions: Python 2.5
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: exarkun, loewis, stuaxo
Priority: normal Keywords:

Created on 2009-01-29 14:41 by stuaxo, last changed 2009-01-29 19:22 by loewis. This issue is now closed.

Messages (3)
msg80765 - (view) Author: Stuart Axon (stuaxo) Date: 2009-01-29 14:41
os.environ doesn't escape spaces, but does backslashes and others

In the windows python interpreter I echo'd the variable 'ProgramFiles',
then in the commandprompt.

>>> from os import environ
>>> environ['ProgramFiles']
'C:\\Program Files'
>>> ^Z

[C:\]echo %ProgramFiles%
C:\Program Files

This 'half' escapping seems odd, and is annoying when building file
paths for instance, probably the space should also be escaped.
msg80767 - (view) Author: Jean-Paul Calderone (exarkun) * (Python committer) Date: 2009-01-29 14:58
The backslash escaping has nothing to do with os.environ.  It's the way
any string with a backslash in it is displayed in the interactive
interpreter (it's the way str.__repr__ works).  Performing any escaping
on a string to make it usable in a command line is a task which is
inappropriate as a feature of os.environ.  The contents of os.environ
are just strings.  If you want to use them in a command line, you need
to escape them appropriately.  Notice that in addition to escaping the
space, you may also sometimes need to escape a backslash (not in this
case on Windows, though, since a single \ is allowed here).  The
escaping of the \ in this example is *only* in the *display* of the
variable - there is only one \ in the string itself.

I recommend closing this ticket as invalid.
msg80779 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2009-01-29 19:22
As Jean-Paul explains, you are misinterpreting what you are seeing.
Closing as invalid.
History
Date User Action Args
2009-01-29 19:22:38loewissetstatus: open -> closed
nosy: + loewis
resolution: not a bug
messages: + msg80779
2009-01-29 14:58:17exarkunsetnosy: + exarkun
messages: + msg80767
2009-01-29 14:41:56stuaxocreate