On 11-May-11 12:14, James Reynolds wrote:
Actually, I never knew that about the windows separators, since I've
just always used the '\' out of habit.

If you want your code to run everywhere, you should use the functions in os.path to manipulate and build paths.

Otherwise, using \ all the time means your code will ONLY ever work on Windows. Using / all the time means your code will work fine on Mac OS X, Linux, or other POSIX systems, and PROBABLY ok on Windows most of the time, but not on other systems.

    out path = 'C:\\test.xls', which will be 'C:\test.xls' or you can
    write out path = r'C:\test.xls' the "r" bit tells python that the
    following is a regular expression. or regex.

Not to be too pedantic, but since this is a tutorial list, I'll point out the more accurate answer so new programmers don't get a mistaken impression.

The 'r' string prefix does not actually mean regular expressions. It means "raw string" where (almost) no backslash codes are recognized in the string constant, so you could say r'C:\test.xls' instead of 'c:\\test.xls'.

Raw strings are, however, really useful for strings which hold regular expressions, so you see them in that context a lot.

... ah... and I just noticed that this was pointed out later in the thread. Sorry for the repeat there.

    ‘/’ is perfectly valid Windows separator. See the *tested* examples
    below. It works just fine pretty much anywhere I have ever tried it,
    including the command line. (except apparently for an MSOffice file
    save dialog that I tried just now)

Not... quite. / is accepted by a number of programs, including the Python interpreter, which came from Unix-like systems where / is the directory separator. Very old versions of MSDOS could be configured to use / on the command line for pretty much everything, but that has been deprecated for a long time now (they originally wanted / for command-line switches instead, so used \ for directory separators).

Core windows commands don't generally accept it, including native Windows applications (although sometimes they're lenient in what they accept). It'll work for command-line Python script usage because it's *python* that allows them, not *windows*.

--
Steve Willoughby / st...@alchemy.com
"A ship in harbor is safe, but that is not what ships are built for."
PGP Fingerprint 4615 3CCE 0F29 AE6C 8FF4 CA01 73FE 997A 765D 696C
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to