On 3/18/2011 6:25 PM, Dan Stromberg wrote:

On Fri, Mar 18, 2011 at 4:00 PM, Ethan Furman <et...@stoneleaf.us
<mailto:et...@stoneleaf.us>> wrote:

    Dan Stromberg wrote:


        Are you on windows?

        You probably should use / as your directory separator in Python,
        not \.  In Python, and most other programming languages, \
        starts an escape sequence, so to introduce a literal \, you
        either need to prefix your string with r (r"\foo\bar") or double
        your backslashes ("\\foo\\bar").

        / works fine on windows, and doesn't require escaping ("/foo/bar").


    Depends on your definition of 'fine'.

    --> from glob import glob
    --> from pprint import pprint as pp
    --> pp(glob('c:/temp/*.pdf'))
    ['c:/temp\\choose_python.pdf',
    'c:/temp\\COA.pdf',
    'c:/temp\\job_setup.pdf']

    Visually ugly, and a pain to compare files and paths.


I argue that the first is quite a bit more readable than the second:
'c:/temp/choose_python.pdf'
    os.path.join([ 'c:', 'temp', 'choose_python.pdf' ])

I agree with your argument, but think that
    r'c:\temp\choose_python.pdf'
is even more readable still.  (Also, it wasn't I that suggested using
os.path.join() on everything.)


Also, heard of os.path.normpath?  You probably shouldn't compare
pathnames without it.

Thanks -- I've heard of it (mostly in the context of resolving relative path names (.. and such)), never checked it out... I'll read up on it.

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to