[Tutor] create an xls file using data from a txt file

Peter Otten __peter__ at web.de
Thu May 12 11:25:56 CEST 2011


Steve Willoughby wrote:

> On 11-May-11 15:54, Prasad, Ramit wrote:
>>> 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*.
>>
>> They work in *Windows* command prompt natively.
> 
> Respectfully, I think you aren't clear on how command line execution
> works.  Hopefully I can help a little (yes, there are enough cases where
> it'll bite you that it's good to know this).
> 
>> Some apps do not work well that is true, but the reason that theywork
>> like this with Python is NOT because Python allows it but because
> Windows does. I highly doubt Python checks for "/" and converts it to
> "\\" (or does any complicated checking of file strings). YMMV for apps,
> but I have never had a problem with '/' on the command prompt. It is an
> important caveat to note that this behavior is not Guaranteed.
> 
> Actually, yes, that's exactly what Python (or actually the underlying
> file handling libraries it's built with) is doing on Windows.  There is
> a decades-long tradition of C compilers (et al) doing this conversion
> for the sake of all the ported Unix C programs that people wanted to run
> on Windows (or, at the time, MSDOS).
> 
> If Windows natively supported it, then you could do this:
> 
> C:\> DIR /users/fred/desktop
> C:\> DEL /temp/myfile
> 
> Or try running your Python program like
> 
> C:\> /python27/python.exe scriptname.py
> 
> That doesn't work either, because Windows is NOT in any way at all
> interpreting the / characters.
> 
> So why does this work:
> 
> C:\> myscript.py /temp/myfile /users/fred/desktop
> 
> or even
> 
> C:\> \python27\python.exe myscript.py /temp/myfile
> 
> That works because Windows hands ALL of the argument strings, as-is,
> with NO interpretation, to the application to deal with.  In this case,
> the application is Python, and Python is going to the extra work to
> interpret the / characters as \ characters when you try to use them in
> open() calls and the like.
> 

The following suggests otherwise:

"""
Note  File I/O functions in the Windows API convert "/" to "\" as part of 
converting the name to an NT-style name, except when using the "\\?\" prefix 
as detailed in the following sections.
"""

(Found at http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx )




More information about the Tutor mailing list