嗨,有一个应用程序有时会报告文件不存在,即使它确实存在,我正在使用 os.path.exists 并且该文件位于已安装的网络共享上。我在 OSX Yosemite,python 2.7.9 上,我有权访问该文件。这是奇怪的事情。下面的第一个命令报告False
,然后我再次运行它,但将文件名中的一个字符更改为小写(TestVendorid_VerifyLog.txt
),再次运行它并报告True
!然后再次使用大写 ( TestVendorId_VerifyLog.txt
) 再次运行它,它会报告True
!到底是怎么回事?这是相当一致的,因为它True
大部分时间都返回,但突然返回False
,然后我可以重复以下练习。
>>> import os
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
False
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorid_VerifyLog.txt")
True
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
True
>>>
更新 1:
当它报告True
时,我运行了这个:
>>> os.stat("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
posix.stat_result(st_mode=33216, st_ino=5351561660274954203, st_dev=771751953L, st_nlink=1, st_uid=504, st_gid=20, st_size=38552, st_atime=1428492003, st_mtime=1428589374, st_ctime=1428589374)
更新 2:
好的,我现在可以重复这个,这绝对是一个缓存的东西。我在本地 Mac 上删除文件 TestVendorId_VerifyLog.txt,然后在另一个工作站上重新创建该文件(该文件位于网络共享上),然后在我的 Mac 上得到 False。如果我更改 os.path.exists 命令的文件名中的一个字母,似乎会使 os.path.exists 更加努力地查找文件并找到它。所以我需要的是在运行命令之前在 python 中的“Refresh Finder”命令。