strange interaction between open and cwd

Chris Rebert clp2 at rebertia.com
Mon May 3 14:05:00 EDT 2010


On Mon, May 3, 2010 at 10:45 AM, Baz Walter <bazwal at ftml.net> wrote:
> On 03/05/10 18:12, Grant Edwards wrote:
>> On 2010-05-03, Baz Walter<bazwal at ftml.net>  wrote:
>>>> Sort of.  The file in question _has_ a full path, you just can't tell
>>>> what it is based on the path you used to open it.
>>>
>>> yes, that's exactly what i was trying to demonstrate in my OP. i can
>>> use python to open a file; but under certain circumstances, there
>>> seems to be no guarantee that i can then use python to locate that
>>> file in the filesystem.
>>
>> Exactly.
>>
>> In your example, it's simply not possible to determine the file's
>> absolute path within the filesystem given the relative path you
>> provided.
>>
>> You requested something that wasn't possible.  It failed.  What do you
>> think should have happened?
>
> path = '../abc.txt'
>
> os.path.realpath(path) -> "OSError: [Errno 2] No such file or directory"
>
> therefore:
>
> open(path) -> "IOError: [Errno 2] No such file or directory"
>
> i think that if the first of these seemingly "impossible" requests fails, it
> is reasonable to expect that the second one also fails. but the second one
> (sometimes) doesn't.
>
> i think they should always either both succeed, or both fail.

Well, that's Unix and Worse-is-Better[1] for ya. Inelegant
theoretically, but probably makes some bit of the OS's job slightly
easier and is usually good enough in practice. Pragmatism is a bitch
sometimes. :-)

Cheers,
Chris
--
[1]: http://en.wikipedia.org/wiki/Worse_is_better
http://blog.rebertia.com



More information about the Python-list mailing list