python 判断某个文件文件夹是否存在

Python08

python 判断某个文件文件夹是否存在,第1张

使用os.path.exists()可以判断文件或者文件夹是否存在,方法很简单,括号中放入需要判断的路径即可,如下

但这种时候容易混淆文件夹和文件,所以可以采用如下命令只检查文件,同样返回布尔型变量

如果文件不存在,直接用open()函数会抛出异常,这时候只要try一下并获取异常即可,如下

上面包含了文件不存在和文件不可读取两种错误类型,这两种都属于IO error,简化一下有,

主要是通过文件的路径来创建path对象,进而判断路径是否存在,如下

(想到这些简单的知识都似曾相识,为什么要零散地记录呢

参考资料: https://www.py.cn/faq/python/12821.html

需要导入OS模块。

判断C:\有没有test目录。

如果不存在则建立一个,代码如下:

import os

if not os.path.exists(r"C:\test"):

    os.mkdir(r"C:\test")

#coding=utf-8

'''

Created on 2014-11-17

@author: Neo

'''

#0:equal

#1:path1 is sub folder of path2

#-1:path2 is sub folder of path1

#2: unrelated

def comparePath(path1, path2):

    if not path1 or not path1:

        return 2

    path1Len =  len(path1)

    path2Len =  len(path2)

    if path1Len > path2Len:

        longPath = path1

        shortPath = path2

        cmpFator  = 1

    else:

        longPath = path2

        shortPath = path1

        cmpFator  = -1

    shortPathLen = len(shortPath)

    longPathLen = len(longPath)

    i = 0

    j = 0

    while i < shortPathLen and j < longPathLen:

        c1 = shortPath[i]

        c2 = longPath[j]

        if isSlash(c1):

            if not isSlash(c2):

                return 2

            while i < shortPathLen and isSlash(shortPath[i]):

                i += 1

            while j < longPathLen and isSlash(longPath[j]):

                j += 1

        else:

            if c1 != c2:

                if i == shortPathLen:

                    return cmpFator

                else:

                    return 2

            i += 1

            j += 1

    if i == shortPathLen:

        if j == longPathLen:

            return 0

        while j < longPathLen:

            if not isSlash(longPath[j]):

                return cmpFator

            j += 1

        return 0

    else:

        return 2

    

def isSlash(c):

    return c == '/' or c == '\\'

print comparePath('C:/', 'C:/')

print comparePath('C:/', 'C:/Python27')

print comparePath('C:/Python27', 'C:')

print comparePath('C:/Python27', 'D:')

result:

0

-1

1

2