Nate Rubin
Nate Rubin

Reputation: 832

Difference between os.path.exists and os.path.isfile?

I'm curious when these two functions will return different values. Also if you could clarify the difference between a path/directory/file that would be appreciated.

Upvotes: 64

Views: 56991

Answers (3)

Suresh Dooly
Suresh Dooly

Reputation: 57

os.path.exists returns if it is a valid path(check for directory or file, both) whereas os.path.isfile(checks for only file, not directory)

Upvotes: 0

Dr. Jan-Philip Gehrcke
Dr. Jan-Philip Gehrcke

Reputation: 35796

As you have already found out, the difference between exists and isfile is the fact that the former returns True in case the given path is a directory or a file, while the latter only returns True if the path points to a file.

Directories and files are quite similar from the technical point of view. A file can contain any kind of data. A directory is just a special entry in the file system (at least on Unix operating systems it is just a special file) that represents the fact that it may contain files and other directories. It is a helpful means for building up a data structure. Using directories, you can organize your data in a hierarchical structure.

Especially in the Windows world, directories are often called "folders". I am sure that you yourself are using "folders" for organizing your files.

A path is an unambiguous pointer to a resource in the file system. It can either point to a file or to a directory.

Upvotes: 46

scott_fakename
scott_fakename

Reputation: 10799

A directory tests true for exists, but false for isfile. There are a few different types of filesystem objects for which that is also true.

isfile means that it is a regular file. It is more specific than exists.

Upvotes: 4

Related Questions