On Fri, 2011-03-25 at 05:39 -0700, Ethan Furman wrote: > 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~
Yes, readability counts, but so does platform independence. -- http://mail.python.org/mailman/listinfo/python-list