开发者

(python) os.path.exists os.path.isfile lies?

os.path.exists is giving me incorrect answers.

it's not the same problem discussed at below link since I'm at windows. Are there other reasons for it to fail?

os.path.exists() lies

The test returns ok when I test it against a file at the same directory as the *.py script runs, but none of its sub directories..

-EDIT-

I'm using absolute path.

I'm looking at one of the sub directories as this script runs, and can literally see file's last modified time field being changed in the windows explorer.

There are no other stuff going on my computer I can think of that will modify the files in question.

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


os.path.exists and os.path.isfile is not case sensitive in Windows machines.

Here's what I get in 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


Turned out, os.path.exists and os.path.isfile is case-sensitive..

Blah!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜