[Tutor] How to replace the '\'s in a path with '/'s?
Sandip Bhattacharya
sandipb at foss-community.com
Sun Jul 31 08:32:18 CEST 2011
On Sat, Jul 30, 2011 at 10:28:11PM -0700, Richard D. Moores wrote:
> File "c:\P32Working\untitled-5.py", line 2
> return path.replace('\', '/')
> ^
> SyntaxError: EOL while scanning string literal
> Process terminated with an exit code of 1
The first backslash up there is escaping the ending quote. This is what
you want:
return path.replace('\\', '/')
Generally, converting slashes manually should be kept at a minimum. You
should be using library functions as much as possible. The experts here
can correct me here, but this is a roundabout way I would be doing this:
# I use a linux machine. Using this to work with Windows paths
# Use os.path if you are on windows
import ntpath
# Use raw strings so that backslash doesnt matter
path=r'C:\Users\Dick\Desktop\Documents\Notes\College Notes.rtf'
#take out drive first because ntpath.split end sentinel is predictable that way
drive,rest = ntpath.splitdrive(path)
# This will store the path components
comps = []
comps.append(drive)
while rest != '\\':
parts = ntpath.split(rest)
comps.insert(1,parts[1])
rest = parts[0]
print '/'.join(comps)
I am not happy with the loop to collect the components. But I couldn't
find a single path function which splits a path into all the components
in one go.
- Sandip
More information about the Tutor
mailing list