Difference between os.path.isdir and Path.is_dir

eryk sun eryksun at gmail.com
Thu Jul 25 13:54:38 EDT 2019


On 7/25/19, Chris Angelico <rosuav at gmail.com> wrote:
> On Fri, Jul 26, 2019 at 3:28 AM eryk sun <eryksun at gmail.com> wrote:
>>
>> On 7/25/19, Kirill Balunov <kirillbalunov at gmail.com> wrote:
>> >
>> >>>> import os
>> >>>> from pathlib import Path
>> >>>> dummy = " "   # or "" or "     "
>> >>>> os.path.isdir(dummy)
>> > False
>> >>>> Path(dummy).is_dir()
>> > True
>>
>> I can't reproduce the above result in either Linux or Windows. The
>> results should only be different for an empty path string, since
>> Path('') is the same as Path('.'). The results should be the same for
>> Path(" "), depending on whether a directory named " " exists (normally
>> not allowed in Windows, but Linux allows it).
>
> Try an empty string, no spaces. To pathlib.Path, that means the
> current directory. To os.path.abspath, that means the current
> directory. To os.stat, it doesn't exist.

That's what I said. But the OP shows os.path.isdir(" ") == False and
Path(" ").is_dir() == True, which is what I cannot reproduce and
really should not be able to reproduce, unless there's a bug
somewhere.



More information about the Python-list mailing list