# Windows file paths, again

Lie Ryan lie.1296 at gmail.com
Wed Oct 21 22:49:06 CEST 2009

Dan Guido wrote:
> Hi Anthony,
>
> Thanks for your reply, but I don't think your tests have any control
> characters in them. Try again with a \v, a \n, or a \x in your input
> and I think you'll find it doesn't work as expected.

A path read from a file, config file, or winreg would never contain
control characters unless they contains that a control character.

My crystal ball thinks that you used eval or exec somewhere in your
script, which may cause a perfectly escaped path to get unescaped, like
here:

# python 3
path = 'C:\\path\\to\\somewhere.txt'
script = 'open("%s")' % path    # this calls str(path)
exec(script)

OR

you stored the path incorrectly. Try seeing what exactly is stored in
the registry using regedit.

Remember that escape characters doesn't really exist in the in-memory
representation of the string. The escape characters exist only in string
literals (i.e. source code) and when you print the string using repr().



More information about the Python-list mailing list