How do I check whether a file exists without exceptions?

后端 未结 30 1864
北海茫月
北海茫月 2020-11-21 05:07

How do I check if a file exists or not, without using the try statement?

30条回答
  •  情歌与酒
    2020-11-21 05:20

    How do I check whether a file exists, without using the try statement?

    In 2016, this is still arguably the easiest way to check if both a file exists and if it is a file:

    import os
    os.path.isfile('./file.txt')    # Returns True if exists, else False
    

    isfile is actually just a helper method that internally uses os.stat and stat.S_ISREG(mode) underneath. This os.stat is a lower-level method that will provide you with detailed information about files, directories, sockets, buffers, and more. More about os.stat here

    Note: However, this approach will not lock the file in any way and therefore your code can become vulnerable to "time of check to time of use" (TOCTTOU) bugs.

    So raising exceptions is considered to be an acceptable, and Pythonic, approach for flow control in your program. And one should consider handling missing files with IOErrors, rather than if statements (just an advice).

提交回复
热议问题