On Sun, Jul 31, 2011 at 03:34, Peter Otten <__pete...@web.de> wrote: > Sandip Bhattacharya wrote: > >> 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. > > What happens if the path looks like > > r"C:relative\path\to\my\file.txt" > > or > > r"C:/mixed\slashes.txt"?
Not quite sure what the intent of your question is, but all the paths I want to modify are full, with only back slashes. Dick _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor