(python)os.path.exists os.path.isfile谎言?

时间:2010-12-30 19:31:24

标签: python windows path

os.path.exists给了我错误的答案。

因为我在Windows,所以在下面的链接中讨论的问题不一样。 它还有其他原因导致失败吗?

os.path.exists() lies

当我对* .py脚本运行的同一目录下的文件进行测试时,测试返回ok,但是没有子目录..

- 编辑 -

我正在使用绝对路径。

我正在查看其中一个子目录,因为此脚本运行,并且可以在Windows资源管理器中逐字地查看文件的最后修改时间字段。
我能想到的计算机上没有其他东西可以修改有问题的文件。

def SaveIfNewer(doc, aiFile, pngFile):
    options = win32com.client.Dispatch('Illustrator.ExportOptionsPNG24')
    options.SetArtBoardClipping(True)
    if (os.path.exists(pngFile)):
        aiFileTime = os.stat(aiFile)[8]
        pngFileTime = os.stat(pngFile)[8]
        print("aiFileTime: ", aiFileTime, "pngFileTime: ", pngFileTime)

        if(aiFileTime > pngFileTime):
            os.remove(pngFile)

    if( not os.path.isfile(pngFile)):
        doc.Export(pngFile, constants.aiPNG24, options)
        print 'exporting:', pngFile
    else:
        print 'skipping file:', pngFile

2 个答案:

答案 0 :(得分:2)

os.path.existsos.path.isfile在Windows计算机中不区分大小写。

这是我在Windows 7(Python 2.7)中获得的内容

>>> os.path.exists('C:/.rnd')
True
>>> os.path.exists('C:/.RND')
True
>>> os.path.isfile('C:/.rnd')
True
>>> os.path.isfile('C:/.RND')
True

答案 1 :(得分:1)

原来,os.path.exists和os.path.isfile区分大小写..

布拉赫!